更改数据库
描述
ALTER DATABASE
语句更改数据库的属性或位置。请注意,
DATABASE
、
SCHEMA
和
NAMESPACE
的使用是可以互换的,可以用一个替代另一个。如果系统中未找到数据库,则会发出错误消息。
更改属性
ALTER DATABASE SET DBPROPERTIES
语句更改与数据库相关的属性。
指定的属性值覆盖任何具有相同属性名称的现有值。
此命令主要用于记录数据库的元数据,并可能用于审计目的。
语法
ALTER { DATABASE | SCHEMA | NAMESPACE } database_name
SET { DBPROPERTIES | PROPERTIES } ( property_name = property_value [ , ... ] )
参数
-
database_name
指定要更改的数据库名称。
更改位置
ALTER DATABASE SET LOCATION
语句更改数据库中新表将被添加的默认父目录。请注意,它不会将数据库当前目录的内容移动到新指定的位置,也不会更改与指定数据库下的任何表/分区相关联的位置(自 Spark 3.0.0 起可用,Hive 元存储版本 3.0.0 及更高版本)。
语法
ALTER { DATABASE | SCHEMA | NAMESPACE } database_name
SET LOCATION 'new_location'
参数
-
database_name
指定要更改的数据库的名称。
示例
-- 创建一个名为 `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))|
+-------------------------+-------------------------------------------+