ALTER SCHEMA
适用于: Databricks SQL Databricks Runtime
通过设置 DBPROPERTIES
更改架构的所有者、设置预测优化行为或更改与架构关联的元数据。 指定的属性值将替代具有相同属性名的任何现有值。
虽然使用 SCHEMA
和 DATABASE
是可互换的,但最好使用 SCHEMA
。
语法
ALTER SCHEMA schema_name
{ SET DBPROPERTIES ( { key = val } [, ...] ) |
[ SET ] OWNER TO principal
SET TAGS ( { tag_name = tag_value } [, ...] ) |
UNSET TAGS ( tag_name [, ...] ) |
{ ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION } }
参数
-
要更改的架构的名称。 如果找不到架构,Azure Databricks 会引发 SCHEMA_NOT_FOUND 错误。
DBPROPERTIES ( key = val [, …] )
要设置或取消设置的架构属性。
[ SET ] OWNER TO principal
将架构的所有权转移给
principal
。适用于: Databricks SQL Databricks Runtime 11.3 LTS 及更高版本
允许使用
SET
作为可选关键字。SET TAGS ( { tag_name = tag_value } [, …] )
将标记应用于架构。 需要具有
use_schema
才能将标记应用于架构。适用于: Databricks SQL Databricks Runtime 13.3 LTS 及更高版本
UNSET TAGS ( tag_name [, …] )
从架构中删除标记。 需要具有
use_schema
才能从架构中删除标记。适用于: Databricks SQL Databricks Runtime 13.3 LTS 及更高版本
tag_name
一个文本
STRING
。tag_name
在架构中必须唯一。tag_value
文本
STRING
。{ 启用 | 禁用 | 继承 } 预测优化
适用于: Databricks SQL Databricks Runtime 12.2 LTS 及更高版本 仅 Unity Catalog
将架构更改为所需的预测优化设置。 默认情况下,创建架构时,行为是从目录
INHERIT
。 默认情况下,在架构中创建的新对象将从架构继承该设置。如果更改架构,则行为将级联到所有继承预测优化的对象。 显式
ENABLE
或DISABLE
优化预测优化的对象不受架构设置影响。若要设置架构的预测优化,用户必须对架构具有
CREATE
权限。只有非增量共享中的架构和 Unity Catalog 中的托管目录才有资格进行预测优化。
示例
-- Creates a schema named `inventory`.
> CREATE SCHEMA inventory;
-- Alters the schema to set properties `Edited-by` and `Edit-date`.
> ALTER SCHEMA inventory SET DBPROPERTIES ('Edited-by' = 'John', 'Edit-date' = '01/01/2001');
-- Verify that properties are set.
> DESCRIBE SCHEMA EXTENDED inventory;
database_description_item database_description_value
------------------------- ------------------------------------------
Database Name inventory
Description
Location file:/temp/spark-warehouse/inventory.db
Properties ((Edit-date,01/01/2001), (Edited-by,John))
-- Transfer ownership of the schema to another user
> ALTER SCHEMA inventory OWNER TO `alf@melmak.et`
-- Applies three tags to the schema named `test`.
> ALTER SCHEMA test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');
-- Removes three tags from the schema named `test`.
> ALTER SCHEMA test UNSET TAGS ('tag1', 'tag2', 'tag3');
-- Enables predictive optimization for objects in schema my_schema
> ALTER SCHEMA my_schema ENABLE PREDICTIVE OPTIMIZATION;