我想在 MySQL 中创建 2 个表,其中第二个表具有来自我的基表的外键。
问题是当我尝试创建第二个表时,我得到 errno:150。失败是因为外键为空。
如何正确创建第二个表?
更多细节
我的第一个表有 5 个属性,第一个属性是主键。
我的第二张表有 3 个属性。此表的第一个和第二个属性引用第一个表中的前 2 个属性。
所有的变量varchar
都是相同的长度。有什么建议么?
鉴于我们看不到您的代码,我认为解决此问题的正确方法是在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)
。