oracle批量update
我个人觉得写的很好
http://blog.csdn.net/wanglilin/article/details/7200201
需求:
将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,是不管存不存在,都更新,不存在的,结果会被更新成空,但是那条记录还在
转载于:https://www.cnblogs.com/remember-forget/p/8970720.html
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 转
需求: 将t2(t_statbuf)表中id和t1(T_Mt)表相同的记录更新进t1表. 1.错误的写法: 1 update table_name t1 set (a,b,c)=( select a, ...
- 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 ...
最新文章
- unicode编码过php的magic_quotes_gpc设置为on的mysql注入与文件写入(待测试)
- 小东《迷路的情人》MV
- 【ArcGIS风暴】实验:公路建设成本的计算
- PPG血氧饱和度计算
- 怎么把计算机模式重置,电脑怎么还原出厂模式
- 解决IE6中 PNG图片透明的终极方案-八种方案!
- as3通用三方库大全
- 如何把linux生成镜像,如何把当前ubuntu系统做成镜像
- mysql特效_Cocos2d-x学习笔记(16)(常见22种特效)
- 精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
- NGN学习笔记9——网络演进与融合
- 免费好用的英语单词统计软件(带翻译功能)
- 基于强化空间注意力的视网膜网络(ESA-Unet)
- maptalks+three.js+vue webpack项目实现二维地图上贴三维模型
- python web py入门(12)- 实现用户登录论坛
- python程序设计基础之turtle库制作简单的小图片
- 彻底缓存与协商缓存(浏览器缓存)
- 如何做一个炫酷的动画网站-css实现图片上下浮动效果
- linux team方式进行网卡绑定
- 景安服务器怎么重装系统,怎么全盘重装系统|全盘重装系统步骤
热门文章
- 计算机win7内容已满,Win7旗舰版电脑C盘满了怎么清理
- 钉钉机器人关键词应答_除了用于电销,智能语音机器人可以应用哪些地方?
- html 显示不吃,20180902_html_第二次_张旺
- 【python+selenium自动化】使用pytest+allure2完成自动化测试报告的输出
- 洛谷——P1067 多项式输出
- 初学者最常问的几个问题
- 【转】成为Java顶尖程序员 ,看这10本书就够了
- redis 学习笔记(1)-编译、启动、停止
- Linux与Windows中动态链接库的分析与对比
- 简单的绑定数据截取时间字符年月日