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中查询关联查询不同数据在另一表作为相同字段的对应的值