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 相关文章推荐
mybatis使用oracle进行添加数据的方法
Apr 27 Oracle
Oracle以逗号分隔的字符串拆分为多行数据实例详解
Jul 16 Oracle
Oracle 临时表空间SQL语句的实现
Sep 25 Oracle
oracle重置序列从0开始递增1
Feb 28 Oracle
排查并解决Oracle sysaux表空间异常增长
Apr 20 Oracle
分析SQL窗口函数之排名窗口函数
Apr 21 Oracle
SQL试题 使用窗口函数选出连续3天登录的用户
Apr 24 Oracle
Oracle中DBLink的详细介绍
Apr 29 Oracle
Oracle数据库事务的开启与结束详解
Jun 25 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
用PHP编程开发“虚拟域名”系统
2006/10/09 PHP
相对路径转化成绝对路径
2007/04/10 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
javaScript 简单验证代码(用户名,密码,邮箱)
2009/09/28 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
微信js-sdk分享功能接口常用逻辑封装示例
2016/10/13 Javascript
JavaScript自定义浏览器滚动条兼容IE、 火狐和chrome
2017/01/05 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
vue刷新和tab切换实例
2018/02/11 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
python根据文件大小打log日志
2014/10/09 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
python 堆和优先队列的使用详解
2019/03/05 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
python实现键盘输入的实操方法
2019/07/16 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
python为什么要安装到c盘
2020/07/20 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
个人自我鉴定
2013/11/07 职场文书
专科毕业生自我鉴定
2013/12/01 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA