我有下表,其中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作为主键的表,并将其链接到原始表。但是,这使我无法单独更新任何一个表,因为它抱怨未通过外键约束。
谢谢。
答案 0 :(得分:1)
您可以在UNIQUE
和id_A
上方添加name
键。
ALTER TABLE data ADD UNIQUE (id_A, name);
这将防止为给定的name
值插入重复的id_A
值。