DROP PURGE 关键字
【摘要】 在 Oracle 数据库中,PURGE 是一个可选关键字,用于在执行 DROP TABLE 命令时永久删除表,而不是将其放入回收站(Recycle Bin)。 PURGE 的作用直接删除,不进入回收站默认情况下,Oracle 会将删除的表放入回收站(USER_RECYCLEBIN 或 DBA_RECYCLEBIN),以便后续可以恢复(FLASHBACK TABLE ... TO BEFORE...
在 Oracle 数据库中,PURGE
是一个可选关键字,用于在执行 DROP TABLE
命令时永久删除表,而不是将其放入回收站(Recycle Bin)。
PURGE
的作用
-
直接删除,不进入回收站
- 默认情况下,Oracle 会将删除的表放入回收站(
USER_RECYCLEBIN
或DBA_RECYCLEBIN
),以便后续可以恢复(FLASHBACK TABLE ... TO BEFORE DROP
)。 - 使用
PURGE
后,表会被永久删除,无法恢复。
- 默认情况下,Oracle 会将删除的表放入回收站(
-
节省存储空间
- 如果确定不再需要该表,使用
PURGE
可以立即释放存储空间,而不是等待回收站自动清理。
- 如果确定不再需要该表,使用
-
提高删除速度
- 由于跳过了回收站管理步骤,
DROP TABLE ... PURGE
通常比普通DROP TABLE
更快。
- 由于跳过了回收站管理步骤,
语法对比
命令 | 行为 |
---|---|
DROP TABLE 表名; |
表进入回收站,可恢复 |
DROP TABLE 表名 PURGE; |
表被永久删除,不可恢复 |
示例
-- 删除表并放入回收站(默认行为)
DROP TABLE employees;
-- 删除表并永久清除(不进入回收站)
DROP TABLE employees PURGE;
回收站相关命令
如果误删了表但没有使用 PURGE
,可以通过以下方式恢复:
- 查看回收站中的表
SELECT object_name, original_name, droptime FROM user_recyclebin WHERE original_name = 'EMPLOYEES';
- 恢复表
FLASHBACK TABLE employees TO BEFORE DROP;
- 清空回收站
PURGE RECYCLEBIN; -- 清空当前用户的回收站 PURGE DBA_RECYCLEBIN; -- 清空整个数据库的回收站(需要 DBA 权限)
适用场景
-
使用
PURGE
:- 确定不再需要该表。
- 需要立即释放存储空间。
- 删除大表以避免回收站占用过多空间。
-
不使用
PURGE
:- 可能需要恢复表(如测试环境或开发环境)。
- 希望保留删除历史(便于审计)。
总结
PURGE
的作用是永久删除表,跳过回收站。在生产环境中,如果确认不再需要该表,建议使用 PURGE
以节省空间和提高性能。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)