MySQL使用另一个表中的外键创建表:errno:150。
我想在MySQL中创建两个表,其中第二个表具有来自我的基表的外键 问题是,当我尝试创建第二个表时,我得到了errno:150。由于外键为空,因此失败 如何正确创建第二个表 更多详细信息 我的第一个表有5个属性,第一个属性是主键 我的第二个表有3个属性。此表的第一个和第二个属性引用第一个表的前两个属性MySQL使用另一个表中的外键创建表:errno:150。,mysql,sql,Mysql,Sql,我想在MySQL中创建两个表,其中第二个表具有来自我的基表的外键 问题是,当我尝试创建第二个表时,我得到了errno:150。由于外键为空,因此失败 如何正确创建第二个表 更多详细信息 我的第一个表有5个属性,第一个属性是主键 我的第二个表有3个属性。此表的第一个和第二个属性引用第一个表的前两个属性 所有变量均为varchar,且长度相同。有什么建议吗?鉴于我们看不到您的代码,我认为解决这个问题的正确方法是打开 请参见下面的示例: CREATE TABLE parent (id INT NOT
所有变量均为
varchar
,且长度相同。有什么建议吗?鉴于我们看不到您的代码,我认为解决这个问题的正确方法是打开
请参见下面的示例:
CREATE TABLE parent (id INT NOT NULL,
PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE child (id INT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id) REFERENCES parent(id)
ON DELETE CASCADE
) ENGINE=INNODB;
这一行正是您需要做的:
FOREIGN KEY(parent\u id)引用parent(id)
您得到的确切错误是什么?如果创建表2,然后手动添加外键约束,会发生什么情况?这可能会对您有所帮助。我最后只是在程序中添加了约束。它省去了我的麻烦。