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: 判断子查询是否返回结果集,不要求知道返回什么
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,786评论 0 9
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,844评论 6 13
  • 有时对数据库进行插入操作时,需要数据库不存在时重复数据才进行插入。代码实现如下
    Toomi阅读 1,436评论 0 0
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 7,876评论 2 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,793评论 1 32