我是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。为什么我会遇到这个问题?
答案 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));