如何让它不添加重复项? 我想通过ID旁边的所有其他列进行检查。
我希望这是无效的。
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
答案 0 :(得分:6)
您需要在所有三列上使用复合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
答案 1 :(得分:1)
答案 2 :(得分:0)
尝试使用:
INSERT IGNORE INTO tablename
Set col1="",col2="",col3=""
或使用
REPLACE INTO tablename
Set col1="",col2="",col3=""
或 您可以使用 INSERT ... ON DUPLICATE KEY UPDATE语法
告诉我它是如何运作的!