oracle 删除关联表数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 删除关联表数据相关的知识,希望对你有一定的参考价值。
emp表
eid ename deptno
101 aaa 10
102 bbb 10
103 ccc 20
104 ddd 20
dept表
did deptno city
1 10 beijing
2 20 shanghai
删除DEPT表中城市名是上海,并且删除EMP表中关联的数据
给出具体方法.谢谢
最好是一句SQL语句
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表内容。 参考技术A 删除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的执行顺序楼主自己调一下。 参考技术B delete from dept a inner join on emp b on a.deptno=b.deptno where a.city='shanghai' 你试试吧!希望有用!
oracle删除关联表的数据,如何删除啊!下面是我写的SQL,不知道哪里出问题了,就是运行不了!
delete from contactcomm tcc,contact tc where tcc.lid=tc.lid and trunc(tc.createtime) >= ADD_MONTHS(trunc(sysdate), -1)
谢谢大侠们了!
delete from contactcomm tcc where tcc.lid in (select tc.lid from contact tc where trunc(tc.createtime) >= ADD_MONTHS(trunc(sysdate), -1));
delete from contact tc where trunc(tc.createtime) >= ADD_MONTHS(trunc(sysdate), -1);
commit;本回答被提问者采纳
以上是关于oracle 删除关联表数据的主要内容,如果未能解决你的问题,请参考以下文章
求oracle中查询关联查询不同数据在另一表作为相同字段的对应的值