Oracle中Drop和Drop Purge之间的区别

21 sql oracle oracle10g

我正在使用Oracle数据库,我对Drop和Purge命令有点困惑.事实上,对我来说,两者都做同样的事情.从数据库中删除带有模式的表.这两者之间的主要区别是什么?

  1. Drop Table Tablename;
  2. Drop Table Tablename Purge;

Ran*_*ndy 42

通常,如果将表删除,则将表移动到回收站(从Oracle 10g开始).但是,如果同时指定了清除修饰符,则表将从数据库中无法(完全)删除该表.

  • +1我想补充说,如果你不添加`purge`,表格会继续使用回收站中的空间,所以如果你正在清理它,最好使用它. (7认同)

小智 6

Oracle数据库10g引入了一个用于删除表的新功能.删除表时,数据库不会立即释放与表关联的空间.相反,数据库重命名表并将其放在回收站中,如果您发现错误地删除了表,则可以使用FLASHBACK TABLE语句在以后对其进行恢复.如果要在发出DROP TABLE语句时立即释放与表关联的空间,请按如下所示包含PURGE子句.DROP TABLE员工PURGE; 仅当您要删除表并在一个步骤中释放与其关联的空间时,才指定PURGE.如果指定PURGE,则数据库不会将表及其依赖对象放入回收站.注意:您不能使用PURGE子句回滚DROP TABLE语句,如果使用PURGE子句删除该表,则无法恢复该表.早期版本中未提供此功能.