DROP SCHEMA - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

DROP SCHEMA

删除 schema。对于外部架构,您还可以删除与该架构关联的外部数据库。此命令无法撤消。

所需的权限

以下是 DROP SCHEMA 所需的权限:

  • Superuser

  • Schema 拥有者

  • 具有 DROP SCHEMA 权限的用户

语法

DROP SCHEMA [ IF EXISTS ] name [, ...] [ DROP EXTERNAL DATABASE ] [ CASCADE | RESTRICT ]

参数

IF EXISTS

一个子句,指示如果指定的 schema 不存在,则命令不应进行任何更改,并返回一条指示 schema 不存在的消息,而不是以错误终止。

此子句在编写脚本时很有用,可使在 DROP SCHEMA 针对不存在的 schema 运行时脚本不会失败。

名称

要删除的架构的名称。您可以指定以逗号分隔的多个架构名称。

DROP EXTERNAL DATABASE

这个子句指示,如果删除外部架构,则删除与它关联的外部数据库(如果存在)。如果不存在外部数据库,则该命令将返回一条消息,说明不存在外部数据库。如果删除多个外部架构,则删除与指定架构关联的所有数据库。

如果外部数据库包含从属对象(如表),则还应包括 CASCADE 选项以删除从属对象。

删除外部数据库时,还会删除与该数据库关联的任何其他外部架构的数据库。使用该数据库的其他外部架构中定义的表也将被删除。

DROP EXTERNAL DATABASE 不支持存储在 HIVE 元存储中的外部数据库。

CASCADE

一个关键字,指示自动删除架构中所有对象。如果指定了 DROP EXTERNAL DATABASE,则还会删除外部数据库中的所有对象。

RESTRICT

一个关键字,指示如果架构中包含任何对象,则不删除该架构或外部数据库。此操作是默认操作。

示例

以下示例删除名为 S_SALES 的架构。本示例使用 RESTRICT 作为安全机制,以便在 schema 包含对象的情况下不会将其删除。在这种情况下,您需要先删除架构对象,然后再删除架构。

drop schema s_sales restrict;

以下示例删除名为 S_SALES 的架构以及依赖该架构的所有对象。

drop schema s_sales cascade;

以下示例删除 S_SALES schema(如果存在);如果不存在该 schema,则不执行任何操作并返回一条消息。

drop schema if exists s_sales;

以下示例删除名为 S_SPECTRUM 的外部架构以及与之关联的外部数据库。此示例使用 RESTRICT,以便在架构和数据库包含任何对象时不会将其删除。在这种情况下,您需要先删除从属对象,然后再删除架构和数据库。

drop schema s_spectrum drop external database restrict;

以下示例删除多个架构、与之关联的外部数据库以及任何从属对象。

drop schema s_sales, s_profit, s_revenue drop external database cascade;