oracle一条语句完成新增和修改
2017-05-27 15:36
288 查看
系统在运行过程中,由于功能的更新会产生一些脚本去更新现有的数据信息。
如:update TONY_T_SSCJ_BAK a set a.cj = (select b.cj from tony_t_sscj b where a.guid = b.guid and a.km = b.km); 这样一条SQL。基表的数据只有6000条,执行这个语句需要3s多的时间。
当我们使用mergin into的时耗时仅为0.047s。
--要更新的表
merge into tony_t_sscj_bak a
--比较的表
using tony_t_sscj b
--条件
on (a.guid = b.guid and a.km = b.km)
--条件匹配时执行update 不匹配时执行insert
when matched then
update set a.cj = b.cj
when not matched then
insert (guid,xh,xm,xb,xw,km,cj) values (b.guid,b.xh,b.xm,b.xb,b.xw,b.km,b.cj);
如:update TONY_T_SSCJ_BAK a set a.cj = (select b.cj from tony_t_sscj b where a.guid = b.guid and a.km = b.km); 这样一条SQL。基表的数据只有6000条,执行这个语句需要3s多的时间。
当我们使用mergin into的时耗时仅为0.047s。
--要更新的表
merge into tony_t_sscj_bak a
--比较的表
using tony_t_sscj b
--条件
on (a.guid = b.guid and a.km = b.km)
--条件匹配时执行update 不匹配时执行insert
when matched then
update set a.cj = b.cj
when not matched then
insert (guid,xh,xm,xb,xw,km,cj) values (b.guid,b.xh,b.xm,b.xb,b.xw,b.km,b.cj);
相关文章推荐
- 根据mysql表中数据的存在与否,一条语句进行修改以及新增
- oracle中使用Merge来完成新增或修改
- Oracle中merge into的使用:该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据.
- Oracle 使用一条insert语句完成多表插入
- Mybatis的oracle的经典SQL语句(分页-新增的id自增-批量新增-动态修改-union all)
- mysql 用一条sql语句修改两个表里的内容,一条sql语句update更新两个表
- oracle 建表、最大ID、判断表是否已存在、字段的查询以及增删改、插入与修改语句
- Oracle ALTER 语句修改数据表
- Oracle ALTER 语句修改数据表
- oracle 设置主键、修改列等sql语句(转载)
- Oracle 修改数据库字段的类型的语句
- 在Oracle 9i中修改表的结构的相关sql语句
- C#中oracle二进制文件操作(新增、修改)
- Oracle中常用的修改表操作的sql语句
- 对比SQL SERVER,ORACLE,DB2上建立和修改表的语句! .
- ORACLE一条SQL查等待语句
- 一条sql语句,要修改一个字段的俩个值,比如把字段sex中的男改为女,女改为男
- 在Oracle 9i中修改表的结构的相关sql语句
- Oracle 使用一条语句删除重复数据
- sql2005中运用一条sql语句完成数据导出到Excel中