CREATE DATABASE

CREATE DATABASE コマンドは、データベースを作成し、その所有者になる場合に使用します。

構文

データベースを作成する場合の構文
CREATE DATABASE <db_name> 
  [ WITH DEFAULT CHARACTER SET LATIN9 COLLATION BINARY ]
  [ COLLECT HISTORY { ON | OFF | DEFAULT ]
  [ DATA_VERSION_RETENTION_TIME <number-of-days> ]

入力

CREATE DATABASE コマンドの入力は以下のとおりです。

表 1. CREATE DATABASE の入力
入力 説明
<db_name> 作成するデータベースの名前。 この名前は、グローバル・オブジェクトの間で固有でなければなりません。 つまり、別のデータベースや、ユーザー、グループ、スケジューラー・ルールと同じ名前にすることはできません。
DEFAULT CHARACTER SET デフォルトの文字セットは LATIN9 です。 これがデフォルトです。 他の値を指定しないようにしてください。
COLLATION 照合は BINARY です。 これがデフォルトです。 他の値を指定しないようにしてください。
COLLECT HISTORY このデータベースに接続されたセッションに関する履歴データを収集するかどうか。
ON
このユーザーが、COLLECT HISTORY が ON に設定されているグループの少なくとも 1 つのメンバーである場合のみ、履歴は収集されます。 これがデフォルトです。
オフ
データベースの履歴は収集されません。
デフォルト
このユーザーが、COLLECT HISTORY が ON に設定されているグループの少なくとも 1 つのメンバーであり、以下の基準のいずれかが当てはまる場合のみ、データベースの履歴は収集されます。
  • ユーザーは、いずれのユーザー・グループのメンバーでもない。
  • ユーザーがメンバーであるすべてのユーザー・グループは、COLLECT HISTORY が DEFAULT に設定されている。
  • ユーザーがメンバーである少なくとも 1 つのユーザー・グループは、COLLECT HISTORY が ON に設定されている。
データ保持時間 作成される dbname データベースは、指定された DATA_VERSION_RETENTION_TIME を持つか、何も指定されていない場合はシステムのデフォルトからプロパティの現在値を取得します。 どちらの場合も、データベース上のプロパティの値によって、このプロパティを明示的に指定しない、そのデータベース内の後続のCREATE SCHEMAコマンドで継承されるデフォルト値が決まります。

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

このプロパティは、テーブル、スキーマ、データベース、およびシステム・レベルで設定できます。 新しいシステムおよびタイムトラベル機能がないリリースからアップグレードされたシステムのすべてのレベルのデフォルト値は0である。 Netezza Performance Server システムのデフォルト値は 0 です。 保持時間間隔が0のテーブルはテンポラル・テーブルではなく、タイムトラベル・クエリーをサポートしない。

テーブルのプロパティの値は、そのテーブルに対する一時クエリで履歴(削除済み)行が表示される可能性のある最大日数を指定します。 現在の(まだ削除されていない)行は履歴ではなく、常に保持され、表示される。

システム、データベース、またはスキーマでこのプロパティを設定すると、ユーザは次のレベル(データベース、スキーマ、またはテーブル)で新しく作成されたオブジェクトに継承されるデフォルト値を指定できます。 システム、データベース、またはスキーマにプロパティを設定することで、すべてのテーブルで同じ値が必要な場合に、多数のテーブルにプロパティを設定する必要がなくなります。 必要であれば、どのテーブルに対しても、このプロパティを明示的に別の値に設定することができる。

出力

CREATE DATABASE コマンドの出力は以下のとおりです。

表 2. CREATE DATABASE の出力
出力 説明
CREATE DATABASE コマンドは正常に実行されました。
ERROR: User 'username' is not allowed to create/drop databases. データベースを作成するために必要な特権がありません。
ERROR: Createdb: database 'name' already exists. 指定した名前のデータベースは既に存在しています。
ERROR: Create database: may not be called in a transaction block. 明示的なトランザクション・ブロックが進行中です。 データベースを作成するには、その前にトランザクションを終了する必要があります。
ERROR: Unable to create database directory 'path'. 次のエラーのいずれかが発生していると考えられます。
  • データ・ディレクトリーに対する十分な権限がない。 その場所に対するアクセス権限が必要です。
  • ディスクがフルである。
  • 別のファイル・システムで問題が発生している。
ERROR: Could not initialize database directory.

特権

admin ユーザーであるか、ユーザー・アカウントが Create Database 特権を持っている必要があります。

使用法

以下は使用例です。
  • 履歴データを収集しない customers という名前のデータベースを作成します。
    MYDB.SCH1(USER)=> CREATE DATABASE customers COLLECT HISTORY OFF;