我想在MySQL中创建2个表,其中第二个表具有来自我的基表的外键。
问题是,当我尝试创建第二个表时,我得到错误:150。由于外键为空,因此失败。
如何正确创建第二张表?
更多详情
我的第一个表有5个属性,第一个属性是主键。
我的第二个表有3个属性。该表的第一个和第二个属性引用第一个表中的前两个属性。
所有变量都是varchar
,所有变量都是相同的长度。有什么建议吗?
答案 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)
。