【发布时间】:2014-10-02 18:38:12
【问题描述】:
我是 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。为什么我会遇到这个问题?
【问题讨论】:
-
您没有
CustomerID的数据类型(例如INTEGER)。另外,一些建议:在Name列中使用VARCHAR(20)而不是CHAR(20),因为CHAR(20)将在末尾填充空格。你不会看到他们,但他们会在那里,他们会搞砸你。
标签: mysql key constraints