oracle如何通过两个表关联,修改其两表中某列中的数据?

oracle如何通过两个表关联,修改其两表中某列中的数据?,第1张

不管是update还是merge每次都是只能修改一站表,还没听说一次修改两张表的。

如果分别修改那就比较简单了(先确定B列是否唯一,如果不唯一,那么可能存在修改扩大的问题,所以可能还要修改语句),update a set a.d=2 where a.b=(select b from E where h=1)(这是a表的,b表的改法更容易)

如果一起修改,那么可能只能临时修改,也就是select的时候修改一下,这个一般没什么用。

设定dept表deptno列为主键。

alter

table

dept

add

constraint

pk_deptno

primary

key

(deptno)

在emp表deptno列上建立外键引用dept表deptno,指定外键类型为级联删除。

alter

table

emp

add

constraint

fk_deptno

foreign

key

(deptno)

references

dept(deptno)

on

delete

cascade

这样删除dept表

只需:delete

from

dept

where

city='shanghai'

就可以自动删除对应emp表内容。

两表关联更新用如下方法。

有以下两张表:

根据test2表中的id和test1表中的id关联,修改test1表中name字段,语句如下:

update test1 a set a.name=(select b.name from test2 b where a.id=b.id) where a.id in (select id from test2)

更新后,test1表中结果:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10850924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存