在将原来的删除。ALTER TABLE T_USER DROP CONSTRAINT SYS_C006506
本来想找找有没有直接修改外键约束的设置的,没有找到。呵呵
删除数据库的表,关键点不在删除的 *** 作,而是在授权 *** 作删除。为什么要删除?谁让删除的?这些都要形成文字的相关内容,不然在生产系统中,如果你是最后 *** 作的,那么板子只能打到你身上。
至于删除的语句很简单,最好用表所属于的用户登陆,然后drop table tablename就可以了。
这样删除有一个好处,就是表在该用户的回收站(10g版本以及以后)中,如果想恢复还有办法。但是如果加了purge这个参数,那么你想恢复都没有办法了。(除非有备份)
oracle回收站的恢复方式:flashback table tablename to before drop如果该用户没有flashback的权限,那么可以考虑以dba身份的用户登陆。
查看回收站的表,本用户登陆sqlplus连接,show recyclebin
使用级联删除+触发器可以搞定你的需求。父表A 子表B 备份表C
命令如下:
create table A
(
dept_ID number primary key,
dept_name varchar2(10)
)
create table B
(
no number primary key,
name varchar2(10),
dept_id number
)
ALTER TABLE WWJ.B ADD CONSTRAINT FK_B FOREIGN KEY (DEPT_ID) REFERENCES WWJ.A (DEPT_ID) ON DELETE CASCADE ENABLE VALIDATE
CREATE OR REPLACE TRIGGER WWJ.TR_B_01
BEFORE DELETE
ON WWJ.B
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
INSERT INTO C VALUES(:old.no,:old.name,:old.dept_id)
END
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)