ALTER DATABASE

説明

ALTER DATABASE ステートメントは、データベースのプロパティまたは場所を変更します。DATABASESCHEMANAMESPACE は相互に交換可能であり、互いの代わりに 1 つを使用できることに注意してください。データベースがシステムに見つからない場合は、エラーメッセージが発行されます。

プロパティの設定

ALTER DATABASE SET DBPROPERTIES ステートメントは、データベースに関連付けられたプロパティを変更します。指定されたプロパティ値は、同じプロパティ名を持つ既存の値をオーバーライドします。このコマンドは、主にデータベースのメタデータを記録するために使用され、監査目的で使用される場合があります。

構文

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

パラメータ

プロパティの解除

ALTER DATABASE UNSET DBPROPERTIES ステートメントは、データベースに関連付けられたプロパティを解除します。指定されたプロパティキーが存在しない場合、コマンドはそれを無視し、最終的に成功します。(Spark 4.0.0 以降で利用可能)。

構文

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

パラメータ

場所の設定

ALTER DATABASE SET LOCATION ステートメントは、データベースに追加される新しいテーブルのデフォルトの親ディレクトリを変更します。データベースの現在のディレクトリの内容を新しく指定された場所に移動したり、指定されたデータベース下のテーブル/パーティションに関連付けられた場所を変更したりするわけではないことに注意してください (Hive メタストアバージョン 3.0.0 以降では Spark 3.0.0 以降で利用可能)。

構文

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

パラメータ

-- 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))|
+-------------------------+-------------------------------------------+

-- Alters the database to unset the property `Edited-by`
ALTER DATABASE inventory UNSET DBPROPERTIES ('Edited-by');

-- Verify that the property `Edited-by` has been unset.
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))                  |
+-------------------------+-------------------------------------------+

-- Alters the database to unset a non-existent property `non-existent`
-- Note: The command will ignore 'non-existent' and finally succeed
ALTER DATABASE inventory UNSET DBPROPERTIES ('non-existent');