如何让它不添加重复项? 我想通过ID旁边的所有其他列来检查它。SQL不允许表中的重复记录
我想这是无效的。
ID col1 col2 col3
1 first middle last
ID col1 col2 col3
2 first middle last
我希望这是有效的。
ID col1 col2 col3
1 first middle last
ID col1 col2 col3
2 first last middle
如何让它不添加重复项? 我想通过ID旁边的所有其他列来检查它。SQL不允许表中的重复记录
我想这是无效的。
ID col1 col2 col3
1 first middle last
ID col1 col2 col3
2 first middle last
我希望这是有效的。
ID col1 col2 col3
1 first middle last
ID col1 col2 col3
2 first last middle
尝试哟使用:
INSERT IGNORE INTO tablename
Set col1="",col2="",col3=""
或使用
REPLACE INTO tablename
Set col1="",col2="",col3=""
或 可以使用 INSERT ... ON DUPLICATE KEY UPDATE语法
告诉我它是如何工作的!
您需要在所有三列上使用组合UNIQUE INDEX。请参见本示例表定义:
CREATE TABLE example (
ID INT PRIMARY KEY AUTO_INCREMENT,
col1 VARCHAR(32) NOT NULL,
col2 VARCHAR(32) NOT NULL,
col3 VARCHAR(32) NOT NULL,
UNIQUE(col1, col2, col3)
);
-- expected to be valid
INSERT INTO example (ID, col1, col2, col3) VALUES
(NULL, 'first', 'middle', 'last'),
(NULL, 'first', 'last', 'middle');
-- expected to be invalid
INSERT INTO example (ID, col1, col2, col3) VALUES
(NULL, 'first', 'middle', 'last'),
(NULL, 'first', 'middle', 'last');
DEMO @SQL Fiddle
你尝试过什么?要创建唯一的组合键,例如 –
,您不应该显示重复记录,或者您不想重复重复记录? –
你的行不重复....你有两个不同的ID ....现在,如果你想检查col col ... – Hackerman