1 drop table时,相关约束被删除
如图,经过drop table操作后已找不到相关的constraint
2 drop table时,对相关对象的影响
如图,index是在tb1上建立的,view和synonym也是基于tb1建立的
(注意这里因为tb1是从recylebin里flashback回来的,因此index的命名由系统自动命名为这种形式)
drop table操作后,可以看到index跟着table一起被删除,但是view和synonym这两个对象还存在
但是查询这个view和synonym,发现这连个对象已经失效了,因为这两个对象实质上都是通过访问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,尽管表数据被删除;