create table order
(
code int not null primary key,
client_code int,
suite_code int,
gallery_code int,
foreign key(client_code) references client(number),
foreign key(suite_code) references suite(number),
foreign key(gallery_code) references gallery(number)
);
抱怨'order'附近的SQL语法错误。
答案 0 :(得分:2)
将表的名称从order
更改为mysql未保留的内容,它将起作用。
答案 1 :(得分:0)
您使用SQL关键字order
作为表名(order by
用于排序结果集)。您可以将其更改为其他内容,也可以将表命名为orders
。
我实际上更喜欢后者,因为该表包含大量订单而不是单个订单,它可以保持您的意图清晰。
答案 2 :(得分:0)
您也可以使用
create table `order`
答案 3 :(得分:0)
单词order
是一个MySQL关键字,因此,您的SQL语句中存在歧义。
您应该使用反引号来分隔用户定义的字段:
CREATE TABLE `order` (
`code` INT NOT NULL PRIMARY KEY,
`client_code` INT,
`suite_code` INT,
`gallery_code` INT,
FOREIGN KEY (`client_code`) REFERENCES `client` (`number`),
FOREIGN KEY (`suite_code`) REFERENCES `suite` (`number`),
FOREIGN KEY (`gallery_code`) REFERENCES `gallery` (`number`)
);
(我还大写了关键字,使你的查询模糊清晰。)
字段名称和关键字不再含糊不清。但是,我仍然建议不要使用关键字作为字段名称,因为这只会让人类读者感到困惑和容易出错!