2016-11-08 78 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