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' } ]入力
| 入力 | 説明 |
|---|---|
| <db_name> | データベースの名前。 |
| OWNER TO | 新しいデータベース所有者の名前 |
| RENAME TO | 新しいデータベース名。 |
| SET DEFAULT SCHEMA | データベースに接続するユーザーのデフォルト・スキーマ。 デフォルト・スキーマを変更すると、以前のデフォルト・スキーマへのアクセス権限を継承していたユーザーは、そのスキーマへのアクセス権限を失い、新しいスキーマへのアクセス権限を継承します。 それらのユーザーは、以前のデフォルト・スキーマへのアクセス権限が明示的に付与されていない限り、そのスキーマへのアクセス権限を失います。 |
| SET DEFAULT CHARACTER SET | 比較、結合、char/nchar クラス・データのキャストを実行可能にするには、デフォルトの文字セットを LATIN9 に設定します。 |
| COLLECT HISTORY | このデータベースにアタッチされているセッションの履歴データを収集するかどうか。
|
| データ保持時間 | データベースの保持時間を変更する。 タイムトラベル・クエリを実行したい場合は、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 | コマンドは正常に実行されました。 |
| 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 コマンド・オプションの一覧である。
| 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} | 許可されない |