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通过存储过程上传list保存功能
May 12 Oracle
Oracle11g R2 安装教程完整版
Jun 04 Oracle
ORACLE数据库应用开发的三十个注意事项
Jun 07 Oracle
DBCA命令行搭建Oracle ADG的流程
Jun 11 Oracle
使用Oracle跟踪文件的问题详解
Jun 28 Oracle
详解Oracle块修改跟踪功能
Nov 07 Oracle
详解Oracle数据库中自带的所有表结构(sql代码)
Nov 20 Oracle
Oracle 触发器trigger使用案例
Feb 24 Oracle
分析SQL窗口函数之排名窗口函数
Apr 21 Oracle
清空 Oracle 安装记录并重新安装
Apr 26 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
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
ie focus bug 解决方法
2009/09/03 Javascript
JavaScript 的继承
2011/10/01 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
详解用vue-cli来搭建vue项目和webpack
2017/04/20 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
Python 检查数组元素是否存在类似PHP isset()方法
2014/10/14 Python
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Django单元测试工具test client使用详解
2019/08/02 Python
使用python turtle画高达
2020/01/19 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
Django生成数据库及添加用户报错解决方案
2020/10/09 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
车辆转让协议书
2014/04/15 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
导游词之无锡唐城
2019/12/12 职场文书
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
MySQL中order by的执行过程
2022/06/05 MySQL
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL