MySQL 约束外键语法

标签 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 创建另一个表(我只是复制在我正在学习的类(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/

相关文章:

MySQL值(value)的唯一性

ruby-on-rails - 如何使用 rspec 测试路由约束

MySQL - 用更有效的东西替换子查询

mysql - 试图获取逗号分隔列表但只获取一个

android - 如何在 sleep 模式下接收硬件按键事件?

javascript - 对象的对象的访问属性

c# - 到处获取所有按下的键

php - 如何只匹配 Doctrine 中最近更新的记录?

php,从 mysql 获取一行并设置一个变量以显示链接

swift - UIStackView 未按预期显示