2013-08-28 39 views
0

我想创建一个具有多个外键的表,并且出现错误。我不确定我做错了什么,我一直在修补它。我敢肯定,它的东西小而笨,但帮助表示赞赏。MYSQL与多个外键创建表错误

Create table Order(
order_number INT AUTO_INCREMENT, 
product_id INT(11) NOT NULL, 
address_id INT(11) NOT NULL, 
user_id INT(11) NOT NULL, 
quantity INT(3) NOT NULL, 
size VARCHAR(20) NOT NULL, 
status VARCHAR(20) NOT NULL, 
order_date DATE NOT NULL, 
PRIMARY KEY (order_number), 
FOREIGN KEY (user_id) 
REFERENCES User (user_id), 
FOREIGN KEY (product_id) 
REFERENCES Product (product_id), 
FOREIGN KEY (address_id) 
REFERENCES Address (address_id) 
)ENGINE = INNODB 

特定的错误我得到的是:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order(

ORDER_NUMBER INT AUTO_INCREMENT, 的product_id INT(11)NOT NULL, 地址_”在行1

+2

'ORDER'这是你指定了你的表名是保留关键字。这是一个保留关键字的完整列表:[MySQL保留关键字列表](http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html) –

回答

0

你不能只用order,因为它也是一个关键字;放在引号:

Create table `Order`(
order_number INT AUTO_INCREMENT, 
product_id INT(11) NOT NULL, 
address_id INT(11) NOT NULL, 
user_id INT(11) NOT NULL, 
quantity INT(3) NOT NULL, 
size VARCHAR(20) NOT NULL, 
status VARCHAR(20) NOT NULL, 
order_date DATE NOT NULL, 
PRIMARY KEY (order_number), 
FOREIGN KEY (user_id) 
REFERENCES User (user_id), 
FOREIGN KEY (product_id) 
REFERENCES Product (product_id), 
FOREIGN KEY (address_id) 
REFERENCES Address (address_id) 
)ENGINE = INNODB 
+0

这是如此简单和愚蠢,谢谢。我可能会改变它的名字,以防止我不得不在整个地方使用引号。 –

+0

这不会是一个坏主意;尽管“全部使用引用”本身也不是一个坏主意。 – vollie

+0

刻度标记让我疯狂编码MYSQL –