2015-02-06 346 views
1

如何在mySQL中创建复合主键。在table1中,我需要将id1,id2设置为复合主键。我用这个查询。但它使每个都成为主键。它会检查每个条目MySQL复合主键唯一性

ALTER TABLE `table1` 
    DROP PRIMARY KEY, 
    ADD PRIMARY KEY(
    `id1`, 
    `id2`); 

的副本当我插入两行

insert "a","b" 
insert "a","c" 

1062 - 重复入门 '1408181771009' 钥匙 'pk_sentiments'

insert "a","c" 
insert "b","c" 

工作正常。我无法理解这种行为。如何解决这个问题?

+0

我们假定你是( “A”, “B”)被插入为(ID1,ID2),但是因为错误报告不同的价值观,这不是这种情况。你的表结构是什么? – koriander 2015-02-06 21:36:40

+0

它只是两个字符串。在我的情况下,id1-id2需要是主键,但是当我插入相同的id1但不同的id2时,它显示此错误 – Burusothman 2015-02-06 21:38:27

+0

您的'alter'语句创建一个组合键。 – Jens 2015-02-06 21:55:12

回答

0

也许这:

ALTER TABLE `table1` ADD UNIQUE KEY `id1_id2` (`id1`, `id2`);