如何使其不添加重复项?
我想通过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
最佳答案
您需要对所有三列使用复合唯一索引。请参阅以下示例表定义:
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');
演示@SQL Fiddle
关于mysql - SQL不允许表中有重复记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22811577/