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 | CASCADE} ]
  [ GROOM BACKUPSET {<backupset> | DEFAULT} ]
  [ LOCK FOR UPDATE ] [ UNLOCK ]
  [ STORAGETYPE { 'BLOCK' | 'OBJECT' | 'DEFAULT' } ]

入力

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 つのメンバーである場合のみ、履歴は収集されます。
オフ
データベースの履歴は収集されません。
デフォルト
履歴は、そのユーザーが少なくとも1つのグループのメンバーで、COLLECT HISTORYがONに設定されており、かつ以下の条件のいずれかが該当する場合にのみ、データベースに対して収集されます:
  • ユーザーは、いずれのユーザー・グループのメンバーでもない。
  • ユーザーがメンバーであるすべてのユーザー・グループは、COLLECT HISTORY が DEFAULT に設定されている。
  • ユーザーがメンバーである少なくとも 1 つのユーザー・グループは、COLLECT HISTORY が ON に設定されている。
データ保持時間

データベースの保持時間を変更する。 タイムトラベル・クエリを実行したい場合は、DATA_VERSION_RETENTION_TIMEを指定してください。

最大許容値は99日。

NOCASCADE オプションを指定すると、コマンドは指定されたデータベースのDATA_VERSION_RETENTION_TIMEの値を更新します。

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

CASCADE オプションを指定すると、コマンドは指定されたデータベースのDATA_VERSION_RETENTION_TIMEの値を更新し、データベース内のすべてのスキーマとテーブルの保持時間間隔が更新されます。

タイムトラベルとDATA_VERSION_RETENTION_TIMEの詳細については、 タイムトラベルを始めるを参照してください。

新郎バックアップセット

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

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

更新ロック データベースへの書き込みを一時停止する。
UNLOCK データベースのロックを解除する。
STORAGETYPE <storage_type>(ストレージタイプ) このデータベースで作成されるテーブルのデフォルトの保存先ストレージ('Block', 'Object' または 'Default' )を指定します。 'Default' の値は、 storagetype がデータベース・レベルで強制されないことを意味する。

出力

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;
  • 一時的データベースを非一時的データベースに変更する:
    ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 0 CASCADE;
  • 非時間データベースを時間データベースに変更する:
    ALTER DATABASE DB1 DATA_VERSION_RETENTION_TIME 30 NOCASCADE;
  • empデータベースをロックし、書き込みを一時停止する:
    MYDB.SCH1(USER)=> ALTER DATABASE emp lock for update;
  • empデータベースのロックを解除する:
    MYDB.SCH1(USER)=> ALTER DATABASE emp unlock;
  • テーブルを変更する際のストレージ・タイプは、以下の構文で定義できる:
    MYDB.SCH1(USER)=> ALTER DATABASE emp UNLOCK STORAGE TYPE object;

watsonx.dataの考察

次の表は、 watsonx.data に対して許可される、または許可されない ALTER DATABASE コマンド・オプションの一覧である。

テーブル3。 ALTER DATABASE コマンドのオプション
ALTER DATABASEオプション 可/不可
ALTER DATABASE <db_name> SET DEFAULT CHARACTER SET IDENT 許可されない
ALTER DATABASE <db_name> SET DEFAULT SCHEMA schema_name 許可されない
ALTER DATABASE <db_name> OWNER TO <user> 許可済み
ALTER DATABASE <db_name> RENAME TO <new_db_name> 許可済み
ALTER DATABASE <db_name> GROOM BACKUPSET <backupset> 許可されない
ALTER DATABASE <db_name>バックアップセットのデフォルトを整理する 許可されない
ALTER DATABASE <db_name> DATA_VERSION_RETENTION_TIME <日数> {NOCASCADE | CASCADE} 許可されない