博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle中如何实现Mysql的两表关联update操作
阅读量:6794 次
发布时间:2019-06-26

本文共 1428 字,大约阅读时间需要 4 分钟。

在看《MySQL 5.1参考手册》的时候,发现MySQL提供了一种两表关联update操作。原文如下:

UPDATE items,month SET items.price=month.priceWHERE items.id=month.id;

在MySQL中构造表验证了一下

mysql> select * from test;+------+--------+| id   | salary |+------+--------+|    1 |    100 ||    2 |    200 ||    3 |    300 |+------+--------+3 rows in set (0.00 sec)mysql> select * from test1;+------+--------+| id   | salary |+------+--------+|    1 |    400 ||    2 |    500 |+------+--------+2 rows in set (0.00 sec)mysql> update test,test1 set test.salary=test1.salary where test.id=test1.id;Query OK, 2 rows affected (0.00 sec)Rows matched: 2  Changed: 2  Warnings: 0mysql> select * from test;+------+--------+| id   | salary |+------+--------+|    1 |    400 ||    2 |    500 ||    3 |    300 |+------+--------+3 rows in set (0.00 sec)

不难看出,上述两表关联update中只更新了test中id为1和id为2的行。

 

寻思了一下,Oracle中好像并没有提供两表关联的update操作,同样输入了上述语句,Oracle报错,报错信息如下:

SQL> update test,test1 set test.salary=test1.salary where test.id=test1.id;update test,test1 set test.salary=test1.salary where test.id=test1.id           *第 1 行出现错误:ORA-00971: 缺失 SET 关键字

后来,查了查官方文档,这种语法并不支持,那么Oracle中如何实现MySQL中的这种效果呢?

鼓捣了一下,虽然出来了,但还是略为复杂。

SQL> update test set test.salary=(select salary from test1 where test1.id=test.id)            where exists (select 1 from test1 where test1.id=test.id);已更新2行。SQL> select * from test;        ID     SALARY---------- ----------         1        400         2        500         3        300

 

转载地址:http://noego.baihongyu.com/

你可能感兴趣的文章
spring security3.x学习(13)_第三个例子要使用hsql数据库
查看>>
这里是黑房子开发者社区
查看>>
★思维导图的30个问答
查看>>
Xcode 6更新默认不支持armv7s架构
查看>>
python正则表达式替换函数中的回调函数
查看>>
用python 10min手写一个简易的实时内存监控系统
查看>>
oralce-MD5加密函数
查看>>
Linux下Redis的安装和使用
查看>>
NIO文章翻译
查看>>
html5对于文件的相关操作
查看>>
aerospike和amc安装部署
查看>>
Redis 面试知识点笔记(一)Redis简介
查看>>
thttpd嵌入式web开发笔记
查看>>
Vue.nextTick()
查看>>
分布式系统学习技术点二:Mycat篇二(进阶)
查看>>
python检测主机状态
查看>>
查看windows 中指定端口号
查看>>
centos6/centos7安装ffmpeg
查看>>
JDK环境变量配置
查看>>
第十章:单元测试代码
查看>>