oracle批量update 转
需求:
将t2(t_statbuf)表中id和t1(T_Mt)表相同的记录更新进t1表。
1.错误的写法:
1 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)。
正确的写法:
1 update table_name t1 set (a,b,c)=( select a,b,c from table_name_2 t2 where t1.a=t2.a) 2 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表中所有的记录都被更新。
例:
update table_name_1 set (a,b) = (select 1,2 from dual where 1=2);
这个结果会把table_name_1中的记录全部更新成空(null),因为后面1=2不成立。
总结:
update时,要弄清限定条件,要测试!
我的测试语句:
1 update my_time_test1 t1 set (MDATE,DISCRIPT) =(select MDATE,DISCRIPT from 2 my_time_test t2 where t1.DISCRIPT=t2.DISCRIPT) where exists (select 1 from 3 my_time_test t2 where t1.DISCRIPT=t2.DISCRIPT);
我的业务语句:
1 update T_Mt t1 set (Stat,OStat,RptTime) =( 2 select Stat,Stat,RptTime from t_statbuf t2 where t1.MsgId=t2.MsgId) where exists( 3 select 1 from t_statbuf t2 where t1.MsgId=t2.MsgId); --如果存在t1和t2相等的,就更新。不加where exists,是不管存不存在,都更新,不存在的,结果会被更新成空,但是那条记录还在
oracle批量update 转相关推荐
- oracle批量update数据_东方国信大数据面试真题
东方国信 学长1 Hadoop工程师笔试题(金融事业部) 1)技术基础题(共十题,每题5分) (1)列举在Linux系统下可以在看系统各项性能的工具(区分CPU.内存.硬盘.网络等) (2)HDFS写 ...
- Oracle 批量update语句,Oracle之update语句优化研究 批量更新
update (select YP.DEALLOCATE_BUDGET_, YP.REMAIN_BUDGET_ from MP_YEAR_PLAN YP where YP.YEAR_PLAN_ID_ ...
- oracle批量update
我个人觉得写的很好 http://blog.csdn.net/wanglilin/article/details/7200201 需求: 将t2(t_statbuf)表中id和t1(T_Mt)表相同的 ...
- oracle 批量插入 mysql 区别,Oracle 和 mysql 的批量操作Sql语句 的区别
正确的oracle批量新增的sql是: 方法 1: insert into ATTRACTIONS ( ID, NAME, LONGITUDE, LATITUDE, UPDATE_TIME ) (s ...
- oracle批量查询更新,Oracle批量查询、删除、更新使用BULK COLLECT提高效率
BULK COLLECT(成批聚合类型)和数组集合type类型is table of 表%rowtype index by binary_integer用法笔记. 例1: 批量查询项目资金账户号为 & ...
- oracle中nowait怎么用,oracle中UPDATE nowait 的使用方法介绍
oracle中UPDATE nowait 的使用方法介绍 1.UPDATE nowait 应用以下场景:查询某条数据,并对其开启数据库事务.如果查询的当前数据没有加锁,则正确返回结果,并对当前数据加锁 ...
- oracle批量将id更新为uuid,oracle批量新增更新数据
本博客介绍一下Oracle批量新增数据和更新数据的sql写法,业务场景是这样的,往一张关联表里批量新增更新数据,然后,下面介绍一下批量新增和更新的写法: 批量新增数据 对于批量新增数据,介绍两种方法 ...
- mybatis mysql 批量更新_mysql批量update更新,mybatis中批量更新操作
在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...
- 批量update sql
批量更新sql |批量update sql 2008年05月21日 星期三 16:36 批量更新表时,update一个表的列时,需要依赖另外的表,这种依赖可以是where条件子句,也可以要update ...
最新文章
- Real World Haskell 第七章 I/O
- 在sublime-text中设置浏览器预览
- 为什么不能在子类的初始化列表里初始化父类的成员
- 【转】3.2(译)构建Async同步基元,Part 2 AsyncAutoResetEvent
- 项目实战Git团队操作_图形化版本
- birt脚本for循环语句_python循环语句(while amp; for)
- it行业里 有哪些职位 职业寿命 比较长_计算机行业范围广泛,这5个高薪IT专业,月薪过万,女生也适合...
- python文件命名 数字,当文件存在时,文件名中的数字递增
- thinkphp 3.2.2 图片上传gif类型生成缩略图错误
- 坐标系ICRS与ITRS相互转换,时间系统及转换
- 【精美前端模板】你还不心动吗?
- SQL面试练习题一(基础)
- 电商实时交易风控系统
- 中止执行后超过2年_在法院中止执行后怎么办
- Facebook将对视频进行人物识别及身份标注
- 标签打印软件如何设置打印区域
- java模拟HTTP请求(集合了网上搜来的各种)
- sqlserver linux版本查询,sqlserver 各版本信息
- STM32CUBEIDE(11)----输出PWM及修改PWM频率与占空比
- 那些好用的网站推荐(五)----资料检索网站篇
热门文章
- aix 查看防火墙状态_aix防火墙怎么样设置
- 1个ieee1394端口_5G新在哪儿(6)?-天线端口的故事
- token会被截取吗_做抖音搬运其他网站视频可以吗?
- bcb quickrep保存为 图片_不容错过的SCI图片处理和组图方法
- element-ui 组件库 el-form 实现
- java开发app的缺点_App原生开发的优缺点有哪些
- python到底是啥_Python语言中的__init__到底是干什么的?
- 20200705:力扣196周周赛上
- 20190905:(leetcode习题)爬楼梯
- java复制文件的命名_java-复制文件时在文件名扩展名前附加“复...