2016-11-08 67 views
1

我有这个MySQL表,PRIMARY KEY(ID)。多列的主键?

ID | COLOR | SIZE 
==================== 
| 1 | RED | 1 | 
| 2 | RED | 2 | 
| 3 | RED | 3 | 
| 4 | GREEN | 1 | 
| 5 | GREEN | 2 | 
| 6 | BLUE | 1 | 
=================== 

当我插入此行例如

INSERT INTO `test`(`COLOR`, `SIZE`) VALUES (RED',1); 

我有一个重复行 1,RED,1 和 7,红,1 如何避免这个问题?

感谢

+1

在颜色上添加一个唯一的约束条件 – scaisEdge

+0

@scaisEdge'color'和'size'? –

+0

你需要为'color'列定义'unique key' –

回答

0

您可以使用alter table

ALTER TABLE `test` 
ADD UNIQUE (color, size) 
0

在运行此先清空表或从表中删除重复的行比运行它。

ALTER TABLE `test` ADD UNIQUE (color, size) 
+0

我试过 ALTER TABLE'test ADD PRIMARY KEY('COLOR','size');。 但是有一个错误。 您的解决方案的工作原理。通过添加“INSERT IGNORE INTO”。 谢谢 – logitech2004