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笔记
Apr 05 Oracle
Oracle创建只读账号的详细步骤
Jun 07 Oracle
ORACLE数据库应用开发的三十个注意事项
Jun 07 Oracle
oracle连接ODBC sqlserver数据源的详细步骤
Jul 25 Oracle
oracle索引总结
Sep 25 Oracle
关于Oracle12C默认用户名system密码不正确的解决方案
Oct 16 Oracle
使用Oracle命令进行数据库备份与还原
Dec 06 Oracle
Oracle 触发器trigger使用案例
Feb 24 Oracle
Oracle数据库中通用的函数实例详解
Mar 25 Oracle
分析SQL窗口函数之排名窗口函数
Apr 21 Oracle
在Oracle表中进行关键词搜索的过程
Jun 10 Oracle
ORACLE中dbms_output.put_line输出问题的解决过程
Jun 28 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
献给php初学者(入门学习经验谈)
2010/10/12 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
跨浏览器的设置innerHTML方法
2006/09/18 Javascript
浅谈JavaScript中面向对象技术的模拟
2006/09/25 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python使用PyV8执行javascript代码示例分享
2013/12/04 Python
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
使用httplib模块来制作Python下HTTP客户端的方法
2015/06/19 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
Python部署web开发程序的几种方法
2017/05/05 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
python的slice notation的特殊用法详解
2019/12/27 Python
python入门之基础语法学习笔记
2020/02/08 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
2020/04/22 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
EJB的几种类型
2012/08/15 面试题
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
关于工作经历的证明书
2014/10/11 职场文书