Oracle drop table

Oracle的drop table操作不仅删除表,还会移除表上的约束、索引和触发器。视图和同义词虽然保留定义,但会失效。触发器在drop操作后不会触发,并且无法通过flashback恢复其原始名称。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 drop table时,相关约束被删除

 如图,经过drop table操作后已找不到相关的constraint

 

    

2 drop table时,对相关对象的影响

如图,index是在tb1上建立的,view和synonym也是基于tb1建立的

(注意这里因为tb1是从recylebin里flashback回来的,因此index的命名由系统自动命名为这种形式)

drop table操作后,可以看到index跟着table一起被删除,但是viewsynonym这两个对象还存在

但是查询这个viewsynonym,发现这连个对象已经失效了,因为这两个对象实质上都是通过访问tb1存在的

3 drop table 对触发器的影响

   建立一个触发器 tgr_tb1,当tb1表中的数据被删除时,往dt_tb1中插入当前sysdate,

   drop table后,tgr_tb1是否还存在?通过drop table的方式,会跟delete from一样触发tgr_tb1吗?

   

   先delete from tb1 验证 tgr_tb1功能正常,删除了tb1中一行后,在dt_tb1中插入了当前系统时间

   

   当执行drop table tb1后,发现trg_tb1不会触发而且被删除

 通过flashback将tb1闪回后,发现触发器恢复了,但是trigger_name已经被系统更改,不再是trg_tb1

验证触发器功能正常

总结:drop table操作相关影响:

删除所有约束,flashback table后恢复约束;

删除index、trigger,flashback table后恢复,但名称由系统定义,不再沿用用户自定义名称 ;

不删除view、synonym的定义,但是都会失效;

不触发delete类trigger,尽管表数据被删除;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值