更改数据库

描述

ALTER DATABASE 语句更改数据库的属性或位置。请注意, DATABASE SCHEMA NAMESPACE 的使用是可以互换的,可以用一个替代另一个。如果系统中未找到数据库,则会发出错误消息。

更改属性

ALTER DATABASE SET DBPROPERTIES 语句更改与数据库相关的属性。 指定的属性值覆盖任何具有相同属性名称的现有值。 此命令主要用于记录数据库的元数据,并可能用于审计目的。

语法

ALTER { DATABASE | SCHEMA | NAMESPACE } database_name
SET { DBPROPERTIES | PROPERTIES } ( property_name = property_value [ , ... ] )

参数

更改位置

ALTER DATABASE SET LOCATION 语句更改数据库中新表将被添加的默认父目录。请注意,它不会将数据库当前目录的内容移动到新指定的位置,也不会更改与指定数据库下的任何表/分区相关联的位置(自 Spark 3.0.0 起可用,Hive 元存储版本 3.0.0 及更高版本)。

语法

ALTER { DATABASE | SCHEMA | NAMESPACE } database_name
SET LOCATION 'new_location'

参数

示例

-- 创建一个名为 `inventory` 的数据库。
CREATE DATABASE inventory;
-- 修改数据库以设置属性 `Edited-by` 和 `Edit-date`。
ALTER DATABASE inventory SET DBPROPERTIES ('Edited-by' = 'John', 'Edit-date' = );
-- 验证属性是否已设置。
DESCRIBE DATABASE 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))|
+-------------------------+------------------------------------------+
-- 修改数据库以设置新位置。
ALTER DATABASE inventory SET LOCATION 'file:/temp/spark-warehouse/new_inventory.db';
-- 验证新位置是否已设置。
DESCRIBE DATABASE EXTENDED inventory;
+-------------------------+-------------------------------------------+
|database_description_item| database_description_value|
+-------------------------+-------------------------------------------+
| Database Name| inventory|
| Description| |
| Location|file:/temp/spark-warehouse/new_inventory.db|
| Properties| ((Edit-date,01/01/2001), (Edited-by,John))|
+-------------------------+-------------------------------------------+