表中每个索引的MySQL唯一名称

时间:2020-02-04 01:16:14

标签: mysql unique

我有下表,其中id_A和id_B是主键

id_A   id_B  name
------------------
1       1    Bob
1       2    Jerry
2       1    Anna

我想确保“名称”对于给定的id_A始终是唯一的,但是我可以为id_B的不同值使用重复的名称。因此,例如,假设上面的表值

id_A=3, id_B=1, name="Bob"是合法的,但是
id_A=2, id_B=2, name="Anna"不会。

我需要设置辅助表来完成此操作吗?我尝试设置一个以id_A和name作为主键的表,并将其链接到原始表。但是,这使我无法单独更新任何一个表,因为它抱怨未通过外键约束。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以在UNIQUEid_A上方添加name键。

ALTER TABLE data ADD UNIQUE (id_A, name);

这将防止为给定的name值插入重复的id_A值。

Demo on dbfiddle

相关问题