sql 条件插入

某表中已有该值时,不添加数据

表中有field1值为v1的记录时不插入

INSERT INTO table(field1, field2, ...fieldn)
SELECT 'v1', 'v2', ...'vn'
FROM DUAL
WHERE NOT EXISTS(SELECT 1 FROM table WHERE field1 = v1)

实例

INSERT INTO tableA(
        //要插入的字段
            id,
            device_id,
            data,
            create_by,
            create_date
        ) SELECT
        //要插入的值,为空可以用null代替
            value1,
            value2,
            value1,
            value4,
            value5
        FROM DUAL
        //dual是为了构建查询语句而存在的表
        WHERE NOT EXISTS(SELECT 1 FROM tableA WHERE device_id = value2 )  
        //判断device_id相同的值是否存在,存在则不添加
        //EXISTS: 判断子查询是否返回结果集,不要求知道返回什么

你可能感兴趣的:(sql 条件插入)