ALTER DATABASE

ALTER DATABASE コマンドを使用して、データベースのプロパティー (例えば、デフォルトの文字セット、名前、デフォルト・スキーマ、データベースの所有者、データベースに対して履歴データを収集するかどうかなど) を変更します。

構文

データベースを変更する場合の構文
ALTER DATABASE <db_name> [ OWNER TO <user> ] [ RENAME TO <new_db_name> ] 
  [ SET DEFAULT SCHEMA <schema_name> ] [ SET DEFAULT CHARACTER SET LATIN9 ] ]
  [ COLLECT HISTORY {ON|OFF|DEFAULT} ] [ DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE ]
  [GROOM BACKUPSET {<backupset>|DEFAULT}] [LOCK FOR UPDATE] [UNLOCK]

入力

ALTER DATABASE コマンドの入力は以下のとおりです。
表 1. ALTER DATABASE の入力
入力 説明
<db_name> データベースの名前。
OWNER TO 新しいデータベース所有者の名前
RENAME TO 新しいデータベース名。
SET DEFAULT SCHEMA データベースに接続するユーザーのデフォルト・スキーマ。 デフォルト・スキーマを変更すると、以前のデフォルト・スキーマへのアクセス権限を継承していたユーザーは、そのスキーマへのアクセス権限を失い、新しいスキーマへのアクセス権限を継承します。 それらのユーザーは、以前のデフォルト・スキーマへのアクセス権限が明示的に付与されていない限り、そのスキーマへのアクセス権限を失います。
SET DEFAULT CHARACTER SET 比較、結合、char/nchar クラス・データのキャストを実行可能にするには、デフォルトの文字セットを LATIN9 に設定します。
COLLECT HISTORY このデータベースに接続されたセッションに関する履歴データを収集するかどうか。
ON
このユーザーが、COLLECT HISTORY が ON に設定されているグループの少なくとも 1 つのメンバーである場合のみ、履歴は収集されます。
オフ
データベースの履歴は収集されません。
デフォルト
このユーザーが、COLLECT HISTORY が ON に設定されているグループの少なくとも 1 つのメンバーであり、以下の基準のいずれかが当てはまる場合のみ、データベースの履歴は収集されます。
  • ユーザーは、いずれのユーザー・グループのメンバーでもない。
  • ユーザーがメンバーであるすべてのユーザー・グループは、COLLECT HISTORY が DEFAULT に設定されている。
  • ユーザーがメンバーである少なくとも 1 つのユーザー・グループは、COLLECT HISTORY が ON に設定されている。
データ保持時間

指定したデータベースのDATA_VERSION_RETENTION_TIMEの値を更新します。 新しい値は、データベース内の既存のスキーマやテーブルに影響を与えない。 しかし、この値は、このプロパティを明示的に指定しないデータベース内の後続のCREATE SCHEMAコマンドで継承されるデフォルト値を決定します。

最大許容値は92日で、これは1暦四半期の最大日数である。

新郎バックアップセット

DEFAULTに設定すると、GROOM TABLEコマンドはテーブルのデータベースのデフォルトのバックアップ・セットを自動的に決定します。

特定のbackupsetid文字列が設定された場合、GROOM TABLE は指定されたバックアップ・セットをテーブルのデータベースのデフォルトのバックアップ・セットとして使用します。

更新ロック データベースへの書き込みを一時停止する。
UNLOCK データベースのロックを解除する。

出力

ALTER DATABASE コマンドの出力は以下のとおりです。
表 2. ALTER DATABASE の出力
出力 説明
ALTER DATABASE コマンドは正常に実行されました。
ERROR: ALTER DATABASE: database "db1" is being accessed by other users データベースは、別のユーザーによって使用されています。

特権

admin ユーザーかデータベース所有者であるか、あるいはアカウントがそのデータベースまたは Database オブジェクト・クラスに対する Alter 特権を持っている必要があります。 データベース所有者またはデフォルト・スキーマを変更するには、そのユーザーまたはスキーマに対する List 特権を持っている必要があります。

使用法

以下に使用例を示します。
  • emp データベースのデフォルト文字セットを変更します。
    MYDB.SCH1(USER)=> ALTER DATABASE emp SET DEFAULT 
    CHARACTER SET LATIN9;
  • emp データベースの所有者を変更します。
    MYDB.SCH1(USER)=> ALTER DATABASE emp OWNER TO admin3;
  • emp データベースの名前を変更します。
    MYDB.SCH1(USER)=> ALTER DATABASE emp RENAME TO employees;
  • empデータベースをロックし、書き込みを一時停止する:
    MYDB.SCH1(USER)=> ALTER DATABASE emp lock for update;
  • empデータベースのロックを解除する:
    MYDB.SCH1(USER)=> ALTER DATABASE emp unlock;