某表中已有該值時(shí),不添加數(shù)據(jù)
表中有field1值為v1的記錄時(shí)不插入
INSERT INTO table(field1, field2, ...fieldn)
SELECT 'v1', 'v2', ...'vn'
FROM DUAL
WHERE NOT EXISTS(SELECT 1 FROM table WHERE field1 = v1)
實(shí)例
INSERT INTO tableA(
//要插入的字段
id,
device_id,
data,
create_by,
create_date
) SELECT
//要插入的值,為空可以用null代替
value1,
value2,
value1,
value4,
value5
FROM DUAL
//dual是為了構(gòu)建查詢語(yǔ)句而存在的表
WHERE NOT EXISTS(SELECT 1 FROM tableA WHERE device_id = value2 )
//判斷device_id相同的值是否存在,存在則不添加
//EXISTS: 判斷子查詢是否返回結(jié)果集,不要求知道返回什么