所以我希望有一个自动增量的整数ID主字段。然后我还想要另一个带有文本字段的键。两个条目不能具有相同的ID,也不能具有相同的文本字段。问题是,如果ID不同但文本字段相同,我仍然不希望它们被插入。不幸的是,创建一个包含两个主键的表意味着可以插入它。除了两个主键之外还有这个表达吗?
答案 0 :(得分:1)
表格只能包含一个主键。当你写
CREATE TABLE T1 ... PRIMARY KEY (A, B)
您实际上并没有创建两个主键,而是创建一个复合(即多列)主键。在这种情况下,这意味着两行不能共享 A和B 的相同值。
如果你需要A和B本身都是唯一的,那么你需要使用 UNIQUE约束(或者,一个唯一索引)。
UNIQUE约束类似于PRIMARY KEY约束,但单个表可能具有任意数量的UNIQUE约束。对于表上的每个UNIQUE约束,每行必须包含由UNIQUE约束标识的列中唯一的值组合。
例如:
CREATE TABLE T1 (A INTEGER PRIMARY KEY, B INTEGER UNIQUE ...)