MySQL使用另一个表中的外键创建一个表:errno:150。

时间:2012-10-14 04:56:09

标签: mysql sql

我想在MySQL中创建2个表,其中第二个表具有来自我的基表的外键。

问题是,当我尝试创建第二个表时,我得到错误:150。由于外键为空,因此失败。

如何正确创建第二张表?

更多详情

我的第一个表有5个属性,第一个属性是主键。

我的第二个表有3个属性。该表的第一个和第二个属性引用第一个表中的前两个属性。

所有变量都是varchar,所有变量都是相同的长度。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我认为,鉴于我们无法查看您的代码,解决此问题的正确方法是MySQL - Foreign Key documentation page

请参阅下面的示例:

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_id) REFERENCES parent(id)