我有一个包含3个值的表组成主键。 如果我有值:
WHERE COLUMN#2 = 'Whatever'
由于第一个字段重复,我无法插入(1,2,2)? 我以为仅由主键组成就不能重复3个值的组合。
答案 0 :(得分:2)
是的,您可以插入不同的元组:
CREATE TABLE t(a INT, b INT, c INT, d TEXT, PRIMARY KEY(a,b,c));
INSERT INTO t(a,b,c,d) VALUES(1,1,1, 'a');
INSERT INTO t(a,b,c,d) VALUES(1,2,2, 'b');
SELECT * FROM t;
答案 1 :(得分:0)
复合键是两个或多个列的组合。它可用于唯一标识表中的每一行。合并列时,可以保证唯一性,但是单独使用时,不能保证唯一性。它可以是候选键或主键。并且可以是不同的数据类型。
CREATE TABLE SAMPLE_TABLE
(COL1 integer,
COL2 varchar(30),
COL3 varchar(50),
PRIMARY KEY (COL1, COL2));