【问题标题】:MySQL CONSTRAINT FOREIGN KEY syntaxMySQL 约束外键语法
【发布时间】: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


【解决方案1】:

您的表定义不正确。您在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));

【讨论】:

    猜你喜欢
    • 2013-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2021-11-05
    • 2014-02-26
    相关资源
    最近更新 更多