无法在MYSQL中创建具有外键的表

时间:2012-03-10 16:17:31

标签: php mysql

我正在尝试在我的php文件中创建此表:

mysql_query("CREATE TABLE Orders (orderID INT(3) NOT NULL PRIMARY KEY AUTO_INCREMENT,
                                  FOREIGN KEY (userID) REFERENCES Users (userID))");

但是,无论何时运行此查询,它都不会创建表。

我创建的外键是错误的吗?

1 个答案:

答案 0 :(得分:3)

查询后的mysql_error()的回显结果,您将看到查询失败的原因。

mysql_query("CREATE TABLE Orders (
    orderID INT(3) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    FOREIGN KEY (userID) REFERENCES Users (userID)
 )") or die(mysql_error());

在您的情况下,没有列userID,并且您正在尝试在该列上创建外键。您必须先定义列。确保它与Users

中的数据类型完全相同
mysql_query("CREATE TABLE Orders (
    orderID INT(3) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    userID INT,
    FOREIGN KEY (userID) REFERENCES Users (userID)
 )") or die(mysql_error());