DROP SCHEMA

从当前/指定的数据库中移除架构。

另请参阅:

CREATE SCHEMAALTER SCHEMADESCRIBE SCHEMASHOW SCHEMASUNDROP SCHEMA

语法

DROP SCHEMA [ IF EXISTS ] <name> [ CASCADE | RESTRICT ]
Copy

参数

name

指定要删除的架构的标识符。如果标识符包含空格、特殊字符或大小写混合字符,则整个字符串必须放在双引号内。放在双引号内的标识符也区分大小写。

如果未以 db_name.schema_name 形式完全限定架构标识符,则该命令将在会话的当前数据库中查找架构。

CASCADE | RESTRICT

指定如果存在引用架构中任何表的外键,是否可以删除架构:

  • CASCADE 会删除架构和架构中的所有对象,包括具有由其他表中的外键引用的主键/唯一键的表。

  • RESTRICT 会返回有关现有外键引用的警告,并且不会删除架构。

默认:CASCADE

使用说明

  • 删除架构不会将其从系统中永久移除。Time Travel 中会保留已删除架构的版本,而保留天数由该架构的 DATA_RETENTION_TIME_IN_DAYS 参数指定:

    1. 在 Time Travel 保留期内,可以使用 UNDROP SCHEMA 命令还原已删除的架构。

    2. 当 Time Travel 保留期结束时,已删除架构的下一个状态取决于它是永久的还是瞬态的:

      • 永久架构将进入 故障安全 状态。在故障安全状态下(为期 7 天),可以恢复已删除的架构,但只能由 Snowflake 恢复。当架构退出故障安全状态后,它将被清除。

      • 瞬态架构没有故障安全状态,因此当它移出 Time Travel 后会被清除。

    3. 已删除的架构一经清除便无法恢复,只能重新创建。

  • 目前,删除架构时,如果将子表的数据保留期显式设置为不同于架构的保留期,则不会遵守子表的保留期。子表的保留时间与架构相同。要遵守子表的数据保留期,请在删除架构 之前 显式删除子表。

  • 删除架构后,创建同名架构将会创建该架构的新版本。仍然可以使用以下方法还原先前架构的已删除版本:

    1. 将架构的当前版本重命名为其他名称。

    2. 使用 UNDROP SCHEMA 命令还原先前的版本。

  • 在允许写入的 目录链接数据库 中,此命令同时从目录链接数据库中删除架构,并从远程目录中删除相应的命名空间。

  • 如果有策略或标签附加到表或视图列,则要成功删除架构,必须让策略或标签自包含在数据库和架构中。例如,database_1 包含 policy_1policy_1 仅在 database_1 中使用。否则,将出现 悬空引用

  • 如果在用户或账户上设置了会话策略或密码策略,则 DROP 操作将失败。

  • 如果指定了 IF EXISTS 子句,而目标对象不存在,该命令会成功完成,不会返回错误。

重要

If the schema contains a snapshot set that has an associated snapshot policy with a retention lock, and there are any unexpired snapshots in the snapshot set, then you can't delete the schema containing the snapshot set. In that case, you must wait for all the snapshots in the set to expire. This restriction applies even to privileged roles such as ACCOUNTADMIN, and to Snowflake support. For that reason, be careful when specifying retention lock and a long expiration period in a snapshot policy.

示例

删除名为 myschema 的架构(来自 CREATE SCHEMA 示例):

DROP SCHEMA myschema;

+--------------------------------+
| status                         |
|--------------------------------|
| MYSCHEMA successfully dropped. |
+--------------------------------+

SHOW SCHEMAS;

+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+
| created_on                      | name               | is_default | is_current | database_name | owner  | comment                                                   | options | retention_time |
|---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------|
| Fri, 13 May 2016 17:26:07 -0700 | INFORMATION_SCHEMA | N          | N          | MYTESTDB      |        | Views describing the contents of schemas in this database |         |              1 |
| Tue, 17 Mar 2015 16:57:04 -0700 | PUBLIC             | N          | Y          | MYTESTDB      | PUBLIC |                                                           |         |              1 |
+---------------------------------+--------------------+------------+------------+---------------+--------+-----------------------------------------------------------+---------+----------------+
Copy
语言: 中文