今天正好有个新需求,要求在一张表中,保证不插入重复的记录。
即,保证每条记录中的某个字段的值不重复。
下面是我给出的SQL语句:
//存在-->更新
//不存在-->插入
UPDATE 表名称 SET 字段1=插入值1, 字段2=插入值2, 字段3=插入值3 WHERE 表名称.字段3 = 插入值3
;
INSERT INTO 表名称 (字段1, 字段2, 字段3)
SELECT 插入值1, 插入值2, 插入值3
FROM DUAL
WHERE NOT EXISTS (
SELECT * FROM 表名称 WHERE 表名称.字段3 = 插入值3
)
如果 “表.校验字段” != “参数”,则插入新纪录。
参考文献:
mysql中如何判断指定字段的重复数据则不插入?(该贴中的四种方法,测试后发现都不可用或不好用。)