oracle 删除关联表数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 删除关联表数据相关的知识,希望对你有一定的参考价值。

删除dept表中的数据:
delete
from
dept
t
where
t.city
=
'shanghai'
删除与之关联的emp表中的数据:
delete
from
emp
e
where
e.deptno
in
(
select
t.deptno
from
dept
t
where
t.city
=
'shanghai'
)
删主键值之前,必须先删掉它的外键,这两条SQL的执行顺序楼主自己调一下。
参考技术A 设定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表内容。

Oracle中,多表关联删除该怎么写?

我建了两个表,p表和c表,现在想要在删除p表的一条数据的同时可以删掉c表中的一条数据,即p.p_id=c.p_id,请问应该怎样写?

参考技术A 只能一条一条的删除。。先删除子表。然后删除主表。
一种是写两条sql语句。另外一种是写触发器。追问

请问具体该怎么写?触发器不怎么会用。。

追答

你如果写在程序里面。你可以删除第一张表。
然后取出第一张的p_id。然后根据这个p_id 去删除第二张表!

具体怎么写。我就不给出来了。
触发器。就是这个功能。。更改表数据的时候。更改另外一张表。
你去查查资料。。应该不难。

追问

。。好吧 谢谢了

追答

怎么不采纳呢。哈哈!

以上是关于oracle 删除关联表数据的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中,多表关联删除该怎么写?

求oracle中查询关联查询不同数据在另一表作为相同字段的对应的值

oracle 如何快速删除两表非关联数据(脏数据)?

oracle删除关联表的数据,如何删除啊!下面是我写的SQL,不知道哪里出问题了,就是运行不了!

多表级联删除表数据特别慢

[oracle]两表关联的update操作问题