CREATE OR ALTER VERSIONED SCHEMA

创建新的版本化架构或修改现有的版本化架构。仅 Native Apps Framework 中的应用程序实例支持此命令。

另请参阅:

CREATE APPLICATIONCREATE APPLICATION PACKAGE

语法

CREATE OR ALTER VERSIONED SCHEMA <name>
  [ WITH MANAGED ACCESS ]
  [ DATA_RETENTION_TIME_IN_DAYS = ]
  [ MAX_DATA_EXTENSION_TIME_IN_DAYS = ]
  [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
  [ COMMENT = '<string_literal>' ]
Copy

必填参数

name

指定架构的标识符;对于在其中创建架构的数据库来说,此标识符必须是唯一的。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。

有关更多详细信息,请参阅 标识符要求

可选参数

WITH MANAGED ACCESS

指定带有版本控制的托管架构。带有版本控制的托管访问架构通过架构所有者集中进行权限管理。

在常规带有版本控制的架构中,对象所有者(即具有对对象的 OWNERSHIP 权限的角色)可以将其对象的更多权限授予其他角色。

在托管架构中,架构所有者管理架构中对对象的所有权限授权,包括 未来授权。对象所有者保留对对象的 OWNERSHIP 权限;但是,只有架构所有者才能管理对对象的权限授权。

DATA_RETENTION_TIME_IN_DAYS = integer

指定可以对架构执行 Time Travel 操作(CLONE 和 UNDROP)的天数,并指定在架构中创建的所有表的默认 Time Travel 保留时间。有关更多详细信息,请参阅 了解和使用 Time Travel

有关此对象级参数的详细说明,以及有关对象参数的更多信息,请参阅 参数。有关表级保留时间的更多信息,请参阅 CREATE TABLE了解和使用 Time Travel

值:

  • Standard Edition:01

  • Enterprise Edition:

    • 090 用于永久架构

    • 01 用于瞬态架构

默认:

  • Standard Edition:1

  • Enterprise Edition(或更高版本):1 (除非在数据库或账户级别指定了不同的默认值)

备注

值为 0 时会有效禁用架构的 Time Travel。

MAX_DATA_EXTENSION_TIME_IN_DAYS = integer

对象参数,指定 Snowflake 可以延长架构内表的数据保留期以防止表上的流过时的最大天数。

有关此参数的详细说明,请参阅 MAX_DATA_EXTENSION_TIME_IN_DAYS

DEFAULT_DDL_COLLATION = 'collation_specification'

为添加到架构的所有表指定默认 排序规则规范。可以在单个表级别上覆盖默认值。

有关该参数的更多详细信息,请参阅 DEFAULT_DDL_COLLATION

COMMENT = 'string_literal'

指定架构的注释。

默认:无值

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

备注

CREATE SCHEMA

应用程序

如果架构已存在,并且您想修改该架构,则需要具备应用程序的 OWNERSHIP 权限。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

备注

虽然您通常会在设置脚本中创建带有版本控制的架构,但也可以通过如下方式创建带有版本控制的架构:

  • 通过具有所有者权限的存储过程。

  • 在使用者账户中,使用对应用程序具有 CREATE SCHEMA 权限的应用程序角色。

使用说明

  • 如果架构不存在,Snowflake 会创建带有版本控制的架构。

  • 如果架构存在且已与命令匹配,Snowflake 会将此视为不执行任何操作。

  • 如果架构存在,但与命令不匹配,Snowflake 会修改带有版本控制的架构以匹配命令。

语言: 中文