ALTER DATABASE
引入或更新于:v1.2.955
更改数据库的名称,或为数据库设置默认存储选项。
语法
-- 重命名数据库
ALTER DATABASE [ IF EXISTS ] <name> RENAME TO <new_db_name>
-- 设置默认存储选项
ALTER DATABASE [ IF EXISTS ] <name> SET OPTIONS (
<database_option> = '<value>' [, ...]
)
参数
| 参数 | 描述 |
|---|---|
DEFAULT_STORAGE_CONNECTION | 已有连接的名称(通过 CREATE CONNECTION 创建),作为该数据库中表的默认存储连接。 |
DEFAULT_STORAGE_PATH | 该数据库中表的默认存储路径 URI(如 s3://bucket/path/),必须以 / 结尾,且与连接的存储类型匹配。 |
DEFAULT_S3_STORAGE_CLASS | 新建非临时外部 Fuse 表的默认 S3 存储类别。支持 standard 和 intelligent_tiering,不区分大小写。 |
备注
SET OPTIONS只对执行该语句后新建的表生效,已有表不受影响。- 可以单独更新连接或路径,但前提是另一个选项已在该数据库上设置。
DEFAULT_S3_STORAGE_CLASS可以单独设置,不要求数据库同时配置DEFAULT_STORAGE_CONNECTION和DEFAULT_STORAGE_PATH。- 新建非临时外部 Fuse 表时,如果未指定
S3_STORAGE_CLASS,表会继承DEFAULT_S3_STORAGE_CLASS。显式指定的外部位置和从数据库继承的外部位置均适用。 - 更改
DEFAULT_S3_STORAGE_CLASS不会更改已有表的S3_STORAGE_CLASS选项,也不会更改已写入的表数据的存储类别。
示例
重命名数据库
CREATE DATABASE DATABEND;
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| DATABEND |
| information_schema |
| default |
| system |
+--------------------+
ALTER DATABASE `DATABEND` RENAME TO `NEW_DATABEND`;
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| NEW_DATABEND |
| default |
| system |
+--------------------+
设置默认存储选项
ALTER DATABASE analytics SET OPTIONS (
DEFAULT_STORAGE_CONNECTION = 'my_s3',
DEFAULT_STORAGE_PATH = 's3://mybucket/analytics_v2/'
);
设置默认 S3 存储类别
ALTER DATABASE external_analytics SET OPTIONS (
DEFAULT_S3_STORAGE_CLASS = 'standard'
);
此操作设置的 DEFAULT_S3_STORAGE_CLASS 仅供新建非临时外部 Fuse 表继承。要更改已有外部表的存储类别,请使用 ALTER TABLE ... SET OPTIONS 设置表级选项 S3_STORAGE_CLASS。
Tag 操作
为数据库分配或移除 Tag。Tag 必须先通过 CREATE TAG 创建。完整说明请参阅 SET TAG / UNSET TAG。
语法
ALTER DATABASE [ IF EXISTS ] <name> SET TAG <tag_name> = '<value>' [, <tag_name> = '<value>' ...]
ALTER DATABASE [ IF EXISTS ] <name> UNSET TAG <tag_name> [, <tag_name> ...]
示例
ALTER DATABASE mydb SET TAG env = 'prod', owner = 'team_a';
ALTER DATABASE mydb UNSET TAG env, owner;

