MySQL一对多外键策略

时间:2015-03-15 22:47:27

标签: mysql database

我有一张桌子:

实例

PK名为'id'(int autoincrement)

和另外两张表:

values_text

values_int

这两个表格包含以下字段:

instance_id / 代码/ 值

使用 instance_id 代码制作的PK。

instance 的记录在 values_text values_int 中可以有0个,1个或多个相关记录。

我想将实例中的外键添加到values_int和values_text,这样当我从实例中删除记录时,相关记录也会从 values_text 中删除values_int

我能够创建外键,问题是我无法在实例表中创建记录,因为我收到错误:

无法添加或更新子行:外键约束失败(instances,CONSTRAINT instances_fk_ab43df FOREIGN KEY(id)REFERENCES values_text({{ 1}}))

如何正确设置外键?

1 个答案:

答案 0 :(得分:2)

您创建了PK/FK反之亦然,实际上您的外键是instance_idvalues_textvalues_text表中)id instances {1}}。

删除idinstances上的外键约束,而不是instance_id上的外键约束(在values_textvalues_text表中)并将id中的instances作为主键。