ALTER DATABASE
描述
ALTER DATABASE
语句用于更改数据库的属性或位置。请注意,DATABASE
、SCHEMA
和 NAMESPACE
可以互换使用。如果在系统中找不到数据库,则会发出错误消息。
ALTER PROPERTIES
ALTER DATABASE SET DBPROPERTIES
语句用于更改与数据库关联的属性。指定的属性值将覆盖具有相同属性名称的任何现有值。此命令主要用于记录数据库的元数据,并可用于审计目的。
语法
ALTER { DATABASE | SCHEMA | NAMESPACE } database_name
SET { DBPROPERTIES | PROPERTIES } ( property_name = property_value [ , ... ] )
参数
-
database_name
指定要更改的数据库的名称。
ALTER LOCATION
ALTER DATABASE SET LOCATION
语句用于更改数据库中添加新表的默认父目录。请注意,它不会将数据库当前目录的内容移动到新指定的位置,也不会更改与指定数据库下的任何表/分区关联的位置(从 Spark 3.0.0 开始,使用 Hive 元存储版本 3.0.0 及更高版本可用)。
语法
ALTER { DATABASE | SCHEMA | NAMESPACE } database_name
SET LOCATION 'new_location'
参数
-
database_name
指定要更改的数据库的名称。
示例
-- Creates a database named `inventory`.
CREATE DATABASE inventory;
-- Alters the database to set properties `Edited-by` and `Edit-date`.
ALTER DATABASE inventory SET DBPROPERTIES ('Edited-by' = 'John', 'Edit-date' = '01/01/2001');
-- Verify that properties are set.
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))|
+-------------------------+------------------------------------------+
-- Alters the database to set a new location.
ALTER DATABASE inventory SET LOCATION 'file:/temp/spark-warehouse/new_inventory.db';
-- Verify that a new location is set.
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))|
+-------------------------+-------------------------------------------+