在mysql中组成主键

时间:2018-10-18 14:33:50

标签: mysql sql

我有一个包含3个值的表组成主键。 如果我有值:

WHERE COLUMN#2 = 'Whatever'

由于第一个字段重复,我无法插入(1,2,2)? 我以为仅由主键组成就不能重复3个值的组合。

2 个答案:

答案 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;

db<>fiddle demo

答案 1 :(得分:0)

复合键是两个或多个列的组合。它可用于唯一标识表中的每一行。合并列时,可以保证唯一性,但是单独使用时,不能保证唯一性。它可以是候选键或主键。并且可以是不同的数据类型。

CREATE TABLE SAMPLE_TABLE  
(COL1 integer,  
COL2 varchar(30),  
COL3 varchar(50),  
PRIMARY KEY (COL1, COL2));