批量更新语句

作者: 一觉睡到丶小时候 | 来源:发表于2019-09-25 16:20 被阅读0次
update eawbpre e
   set e.eawb_handletime =
       (select ep.eawb_handletime
          from temp_eawbpre_test ep
         where e.eawb_reference1 = ep.eawb_reference1)
 where exists (select 1
          from temp_eawbpre_test ep
         where e.eawb_reference1 = ep.eawb_reference1);

错误的写法

update table_name t1 set (a,b,c)=( select a,b,c from table_name_2 t2 where t1.a=t2.a);
这种写法,会更新t1表中的所有行:如果t1.a=t2.a的,就更新t2中查出的记录进t1;如果t1.a<>t2.a的,t1中的记录会被更新成空(null)

正确的写法

update table_name t1 
set (a,b,c)=( select a,b,c from table_name_2 t2 where t1.a=t2.a)
where exists(
      select 1 from table_name_2 t2 where t1.a=t2.a
);  

解析
正确的写法,就是在后面加了一句 where exists(select 1 from table_name_2 t2 where t1.a=t2.a);
这句话的意思是:如果存在t1.a=t2.a,就更新,否则,不更新,所以不会导致t1表中所有的记录都被更新。

相关文章

  • mybatis实现一条SQL批量保存和更新

    关键是mapper.xml的SQL语句映射配置 批量保存(一条SQL) 批量插入的SQL语句: 批量更新(一条SQ...

  • MyBatis批量更新时报错:Query was empty

    Query was empty表示没有可执行的语句 在mybatis中用标签批量更新时,因为批量...

  • 批量更新语句

    错误的写法 update table_name t1 set (a,b,c)=( select a,b,c fro...

  • mysql批量插入和批量修改

    批量插入 当我们拿到数组之后,变量数组,按照批量插入的SQL语句构造SQL 批量更新 使用redis的时候,我们可...

  • mybatis 实现批量更新

    序言 在业务开发阶段,估计我们都会遇到批量更新,而且批量更新中用到最多就是类似以下语句,像这种都是更新的值与条件一...

  • Spring使用JDBCTemplate

    使用JDBCTemplate更新数据库 使用sql语句和参数更新数据库(update) 批量更新数据库(batch...

  • JDBC(八)批量处理

    一、批量处理JDBC语句提高处理速度 当需要成批插入或者更新记录时。可以采用Java的批量更新机制,这一机制允许多...

  • MySQL实战应用

    一、批量更新 一:语法 二:mybatis的xml文件写法 二、分段更新(update语句需排序才能加limit)...

  • jdbc batch操作

    批量操作(batch):当需要成批插入或者更新记录时。可以采用Java的批量更新机制. 这一机制允许多条语句一次性...

  • 批量处理JDBC语句提高处理速度

    当需要成批插入或者更新记录时。可以采用Java的批量更新机制,这一机制允许多条语句一次性提交给数据库批量处理。通常...

网友评论

    本文标题:批量更新语句

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