我有表A和表B.我有一个名为tableC的桥表
表C中的我有:
ID
tableA_ID
tableB_ID
ID是主键。
我还想强制tableA_ID和tableB_ID的组合是唯一的,因此没有重复的记录。
我该如何强制执行此操作?
答案 0 :(得分:3)
create unique index myIdx on tableC(tableA_ID, tableB_ID)
或您的特定数据库系统的任何语法。
答案 1 :(得分:2)
制作PRIMARY KEY tableA_ID和tableB_ID,EXCLUDING ID
假设我们有一个表TABLEA,其值为
tableAID
1
2
3
和表TABLEB,其值为
tableBID
4
5
6
使主键(ID,tableA_ID,tableB_ID)不起作用,例如。
ID | tableAID | tableBID
1 | 1 | 4
2 | 1 | 4
可以正常使用上面的pk,但你需要PRIMARY KEY(tableA_ID,tableB_ID)
答案 2 :(得分:0)
删除ID列,然后将其他两列作为主键,其唯一性将由数据库服务器强制执行。 没有必要拥有ID列 - 即使它是一种引用特定记录的便捷方式 - 因为其他两列的唯一性意味着它们足以引用特定记录。
您可能还希望在此表上添加一个索引,其中包括列,以便更快地访问。