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覆盖导入dmp文件的2种方法
May 21 Oracle
oracle连接ODBC sqlserver数据源的详细步骤
Jul 25 Oracle
Oracle 死锁的检测查询及处理
Sep 25 Oracle
oracle索引总结
Sep 25 Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 Oracle
详细聊聊Oracle表碎片对性能有多大的影响
Mar 19 Oracle
Oracle使用别名的好处
Apr 19 Oracle
Oracle中DBLink的详细介绍
Apr 29 Oracle
oracle数据库去除重复数据
May 20 Oracle
Oracle中日期的使用方法实例
Jul 07 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
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
php英文单词统计器
2016/06/23 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
js动态切换图片的方法
2015/01/20 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
javascript包装对象实例分析
2015/03/27 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
深入剖析JavaScript编程中的对象概念
2015/10/21 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
Python动态加载模块的3种方法
2014/11/22 Python
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
python使用openpyxl操作excel的方法步骤
2020/05/28 Python
简单说说tomcat的配置
2013/05/28 面试题
优秀研究生自我鉴定
2013/12/04 职场文书
优秀部门获奖感言
2014/02/14 职场文书
认真学习保证书
2015/02/26 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python