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;