我是 MySQL 新手,正在搞乱我为了学习而创建的数据库。
我创建了第一个表并且运行正常:
mysql> CREATE TABLE Pizzas(ItemID INTEGER PRIMARY KEY, Size INTEGER, Price DECIMAL);
Query OK, 0 rows affected (0.90 sec)
然后我尝试使用 CONSTRAINT 创建另一个表(我只是复制在我正在学习的类(class)中创建外键的方式),但出现错误:
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。为什么我会遇到这个问题?
最佳答案
您的表定义不正确。您缺少 CustomerID PRIMARY KEY
中的datatype
。应该是
CREATE TABLE Customers(CustomerID int not null PRIMARY KEY,
<-- Here
Name CHAR(20), ItemID INTEGER,
CONSTRAINT FOREIGN KEY (ItemID) REFERENCES Pizzas (ItemID));
关于MySQL 约束外键语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26167350/