美文网首页
当记录不存在时insert/当记录存在时update

当记录不存在时insert/当记录存在时update

作者: _花 | 来源:发表于2022-04-09 15:35 被阅读0次

1.插入之前可以根据唯一字段判断是否数据库已经存在这条数据,如果有,则返回false,没有则返回true。

  <insert id="insertUser" parameterType="com.baidu.aduhdmap.permission.mbg.model.UserModel">
    insert into acl_user (id, user_name, email, memo, is_deleted, gmt_create, gmt_modified)
    select #{id,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},#{memo,jdbcType=VARCHAR}, #{isDeleted,jdbcType=TINYINT},
            #{gmtCreate,jdbcType=TIMESTAMP}, #{gmtModified,jdbcType=TIMESTAMP}
    WHERE not exists (select * from acl_user
                      where email = #{email,jdbcType=VARCHAR});
  </insert>

我本地数据库版本是5.7.24运行上面的语句是OK的,但是在高版本运行会报错,高版本的话需要在where not exists ***前加 from dual

2.如果根据唯一字段email判断,数据库已有该数据,则什么都不操作直接返回true,如果没有该条数据,则插入数据库再返回true。

 <insert id="insertUser" parameterType="com.baidu.aduhdmap.permission.mbg.model.UserModel">
    insert into acl_user (id, user_name, email, memo, is_deleted, gmt_create, gmt_modified)
    values (#{id,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},#{memo,jdbcType=VARCHAR}, #{isDeleted,jdbcType=TINYINT},
            #{gmtCreate,jdbcType=TIMESTAMP}, #{gmtModified,jdbcType=TIMESTAMP})
    ON DUPLICATE KEY UPDATE email=email;
  </insert>

3.如果根据唯一字段email判断,数据库已有该数据,则替换掉掉数据库现有数据,并返回true。

 <insert id="insertUser" parameterType="com.baidu.aduhdmap.permission.mbg.model.UserModel">
    insert into acl_user (id, user_name, email, memo, is_deleted, gmt_create, gmt_modified)
    values (#{id,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},#{memo,jdbcType=VARCHAR}, #{isDeleted,jdbcType=TINYINT},
            #{gmtCreate,jdbcType=TIMESTAMP}, #{gmtModified,jdbcType=TIMESTAMP})
    ON DUPLICATE KEY UPDATE email=email;
  </insert>

相关文章

  • 当记录不存在时insert/当记录存在时update

    1.插入之前可以根据唯一字段判断是否数据库已经存在这条数据,如果有,则返回false,没有则返回true。 我本地...

  • MySQL 当记录不存在时insert,当记录存在时update

    目前网上有三种方法,暂时只尝试了其中的一种 第一种 利用关键字:REPLACE注:(1)我们在使用数据库时可能会经...

  • MySQL 当记录不存在时insert

    一、使用场景 我们使用MYSQL的时候,为了防止重复的插入,我们就需要先判断是否数据库中时候存在相同的记录。MyS...

  • Oracle中的Merge into的用法

    在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录时,就更...

  • MySQL insert or update

    业务场景 我们经常会遇到类似的业务场景,插入一条数据如果他不存在则执行 insert ,当这条记录存在的时候,我们...

  • SQL(二)

    修改数据 INSERT:插入新记录;UPDATE:更新已有记录;DELETE:删除已有记录。 INSERT INS...

  • Mysql Insert Or Update语法例子

    有的时候会需要写一段insert的sql,如果主键存在,则update;如果主键不存在,则insert。Mysql...

  • Java null

    可能出现 null 的情况 当字典中key值不存在时,get查找为null 当字典中key值不存在时,get查找为...

  • 如果不存在则插入,存在则不插入

    MySQL INSERT插入条件判断:如果不存在则插入我们经常需要进行sql的批量插入,要求:该条记录不存在则插入...

  • Python 学习笔记17 - 访问数据库

    使用 SQLite 查询记录: 使用 Cursor 对象执行 insert , update , delete 语...

网友评论

      本文标题:当记录不存在时insert/当记录存在时update

      本文链接:https://www.haomeiwen.com/subject/fvupsrtx.html