首页 > 解决方案 > SQL 模式将不会构建 - 对 ')' 附近语法的模糊错误引用

问题描述

我正在学习 mySQL 并遇到了似乎无法修复的语法错误。我收到一条错误消息,指出“您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以在第 8 行的 ')' 附近使用正确的语法”第 8 行是state. 我正在使用 sqlfiddle 和 mySQL 5.6 检查我的代码,其中包含以下内容:

CREATE TABLE `customer` (
`customer_id` int(10) NOT NULL,
`first_name` varchar(20) NOT NULL,
`last_name` varchar(20) NOT NULL,
`address` varchar(150) NOT NULL,
`apartment` int(10) DEFAULT NULL,
`city` varchar(30) NOT NULL,
`state` varchar(30) NOT NULL,
`zip` varchar(10) NOT NULL,
`home_phone` varchar(10) DEFAULT NULL,
`cell_phone` varchar(10) DEFAULT NULL,
`other_phone` varchar(10) DEFAULT NULL,
PRIMARY KEY (`customer_id`)
);

CREATE TABLE `donut` (
`donut_id` int(10) NOT NULL,
`name` varchar(60) NOT NULL,
`description` varchar(150) DEFAULT NULL,
`unit_price` int(4) NOT NULL,
PRIMARY KEY (`donut_id`)
);

CREATE TABLE `order` (
`order_id` int(10) NOT NULL,
`customer_id` int(10) NOT NULL,
`order_date` date DEFAULT NULL,
`handling_notes` varchar(300),
PRIMARY KEY (`order_id`),
FOREIGN KEY (`customer_id`)
);
CREATE TABLE `order_line` (
`order_id` int(10) NOT NULL,
`donut_id` int(10) NOT NULL,
`donut_quantity` int(6) NOT NULL,
PRIMARY KEY (`order_id`, `donut_id`)
);

标签: mysqlsqldatabasesyntaxsyntax-error

解决方案


for 语句中的FOREIGN KEY子句 缺少一个子句。CREATE TABLEorderREFERENCES

大概你想更换

FOREIGN KEY (`customer_id`)

和:

FOREIGN KEY (`customer_id`)
            REFERENCES `customer`
                       (`customer_id`)

推荐阅读