Oracle中update和select 关联操作


Posted in Oracle onJanuary 18, 2022

1、介绍

本文主要向大家介绍了Oracle数据库之oracle update set select from 关联更新,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助。

工作中有个需求,现在新表中有一些数据跟老表的基本一样,这样只需要把老表中数据搬到新表中就可以了,同时把不同的字段修改下数据即可,在修改字段时发现,需要指定一个条件,比如主键id,来修改某条记录,这样一条一条修改效率太低了,有没有批量操作的方式呢?

goods表:

select gid,code,name,code2 from goods;

Oracle中update和select 关联操作

init_goods表:

select code,name,code2 from init_goods;

Oracle中update和select 关联操作

2、解决方法

2.1、需求

goods表中code2根据init_goods表中code2更新;

2.2、错误演示

下面是一个错误的做法:

update goods set code2 = 
(select code2 from init_goods where init_goods.code = goods.code)

goods表数据无法更新,系统会一直卡主,知道崩溃;

2.3、解决方法

方法一:

update goods set code2 = 
(select code2 from init_goods where init_goods.code = goods.code)
where exists (select 1 from init_goods where init_goods.code = goods.code)

方法二:

update goods goods
set goods.code2 = (select init_goods.code2 from init_goods where init_goods.code = goods.code)
where goods.code = (select init_goods.code from init_goods where init_goods.code = goods.code)

注意:修改的列是code2,条件是 code ;

说明:

如果select 子句可以返回多行记录,但返回适合where条件的记录是唯一的,否则将会报返回单行的select子句返回多行的错误,因为 update只能跟据此处的where子句(内层where)进行相应记录的匹配更新,一次只能是一条。

到此这篇关于Oracle update和select 关联的文章就介绍到这了,更多相关Oracle update和select 关联内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Oracle 相关文章推荐
oracle DGMGRL ORA-16603报错的解决方法(DG Broker)
Apr 06 Oracle
详解Oracle块修改跟踪功能
Nov 07 Oracle
Oracle表空间与权限的深入讲解
Nov 17 Oracle
oracle重置序列从0开始递增1
Feb 28 Oracle
oracle删除超过N天数据脚本的方法
Feb 28 Oracle
详细聊聊Oracle表碎片对性能有多大的影响
Mar 19 Oracle
Oracle中DBLink的详细介绍
Apr 29 Oracle
oracle数据库去除重复数据
May 20 Oracle
Oracle数据库事务的开启与结束详解
Jun 25 Oracle
oracle设置密码复杂度及设置超时退出的功能
Jun 28 Oracle
Oracle查看表空间使用率以及爆满解决方案详解
Jul 23 Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 #Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Oracle表空间与权限的深入讲解
Nov 17 #Oracle
详解Oracle块修改跟踪功能
Nov 07 #Oracle
Oracle安装TNS_ADMIN环境变量设置参考
Nov 01 #Oracle
关于Oracle12C默认用户名system密码不正确的解决方案
Oct 16 #Oracle
C#连接ORACLE出现乱码问题的解决方法
Oct 05 #Oracle
You might like
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
jQuery 技巧小结
2010/04/02 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
js格式化时间小结
2014/11/03 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
JS动画效果打开、关闭层的实现方法
2015/05/09 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
JS中的作用域链
2017/03/01 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
2019/04/07 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
Python with语句和过程抽取思想
2019/12/23 Python
tensorflow 变长序列存储实例
2020/01/20 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
Django ORM filter() 的运用详解
2020/05/14 Python
如何一键升级Python所有包
2020/11/05 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
合作意向书范本
2014/03/31 职场文书
银行资信证明
2015/06/17 职场文书
2016大学生暑期社会实践心得体会
2016/01/14 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
PHP使用QR Code生成二维码实例
2021/07/07 PHP
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers