zoukankan      html  css  js  c++  java
  • oracle带条件的Insert语句

    背景

    在一条记录完结时,自动向表中加入一条新的记录,采用的是事务处理,修改现有记录,并新增一条记录,直接采用的insert语句会报错

    //主键冲突
    unique constraint (XXXXXX) violated

    其实没有主键冲突,但是不知道为什么它会报错,并且插入也是成功,也就说,插入成功还抛出异常,很懵逼

    解决思路

    插入的时候判断该记录是否存在,然而我们通常使用where都是在查、改、删,很少在增中使用where。

    一通倒腾

    insert into 'tablename' 
    (column1, column2,,,,,) 
    select 
    各列的值
    from
    dual
    where not exists
    (select * from tablename where 判断条件)

    这里注意两点

    1. 不能有values,通常我们在insert数据时都会加上values,但是该场景下,不能加(这是我经历的坑)
    2. dual不能更改,这个是oracle数据库中内置的一个表,用于不明确的查询源,有兴趣可以查找更多的资料
  • 相关阅读:
    React 官网列子学习
    阿里云图片裁剪
    Android list加载图片工具类
    Java 反射
    Android 调节图片工具类
    Android 设置资源字体,屏幕截图
    android 跨进程通讯 AIDL
    android sdk api结构解析
    android学习之activity
    驱动进阶1
  • 原文地址:https://www.cnblogs.com/numen-fan/p/8883731.html
Copyright © 2011-2022 走看看