MySQL CONSTRAINT FOREIGN KEY语法

时间:2014-10-02 18:38:12

标签: mysql key constraints

我是MySQL的新手,并且正在搞乱我为了学习而创建的数据库。

我创建了我的第一个表,它运行正常:

mysql> CREATE TABLE Pizzas(ItemID INTEGER PRIMARY KEY, Size INTEGER, Price DECIMAL);
Query OK, 0 rows affected (0.90 sec)

然后我尝试使用CONSTRAINT创建另一个表(我只是复制外键在我正在创建的类中创建的方式)并且我收到错误:

mysql> CREATE TABLE Customers(CustomerID PRIMARY KEY, Name CHAR(20), ItemID INTEGER, CONSTRAINT FOREIGN KEY (ItemID) REFERENCES Pizzas (ItemID));

ERROR 1064 (42000): 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 'PRIMARY KEY, Name CHAR(20), ItemID INTEGER, CONSTRAINT FOREIGN KEY (ItemID) REFE' at line 1

我使用的是linux计算机,我的MySQL版本是5.5。为什么我会遇到这个问题?

1 个答案:

答案 0 :(得分:2)

您的表定义不正确。您错过了datatype中的CustomerID PRIMARY KEY。它应该是

CREATE TABLE Customers(CustomerID int not null PRIMARY KEY,
                                  <-- Here 
Name CHAR(20), ItemID INTEGER, 
CONSTRAINT FOREIGN KEY (ItemID) REFERENCES Pizzas (ItemID));