DROP SCHEMA
从数据库中永久删除架构。由于 DROP SCHEMA 是一个不可逆的过程,因此在删除架构前,请务必先确认您确实想要删除该架构。使用 CASCADE 参数可删除包含一个或多个对象的架构。
语法
DROP SCHEMA [ IF EXISTS ] [database.]schema[,...] [ CASCADE | RESTRICT ]
参数
IF EXISTS
- 指定当要删除的架构不存在时不报告错误。 在 SQL 脚本中使用此子句,可避免在尝试创建不存在的对象之前删除它们时出错。
- [database.]架构
- 要删除的数据库的名称。如果指定一个数据库,它必须是当前数据库。
CASCADE
- 指定删除架构及其中的所有对象,而不考虑这些对象的所有者。
当心
依赖于已删除架构中对象的其他架构中的对象——例如,用户定义的函数——也将以静默形式删除。 RESTRICT
- 仅当架构为空时将其删除(默认)。
特权
非超级用户:架构所有者
限制
-
不能删除 PUBLIC 架构。
-
如果有用户正在访问正在删除的架构中的对象,则在该事务完成前,不会删除该架构。
-
取消 DROP SCHEMA 语句可能导致无法预见的结果。
示例
以下示例将删除架构 S1,但前提是该架构不包含任何对象:
=> DROP SCHEMA S1;
以下示例将删除架构 S1,而无论其包含架构与否:
=> DROP SCHEMA S1 CASCADE;