CREATE DATABASE (SQL)
構文
CREATE DATABASE dbname [ON DIRECTORY pathname]
[WITH [ENCRYPTED_DB] [GLOBAL_JOURNAL_STATE [=] {YES | NO}] ]
概要
CREATE DATABASE コマンドは、1 つのネームスペース、およびそれに関連付けられた 2 つのデータベースを作成します。これにより、SQL 内でネームスペースを作成できるようになります。
指定した dbname は、作成されるネームスペース、および対応するデータベース・ファイルを含むディレクトリの名前となります。ネームスペース名は、大文字と小文字を区別しません。dbname は、SQL 識別子の名前付け規約に従います。また、次のような制限事項もあります。
-
アンダースコア (_) 文字を dbname の先頭文字として使用することは認められていません (ただし、名前の文字列内の他の位置では使用可能です)。@、#、および $ 文字は、dbname 内での使用は認められていません。これらの無効な文字を dbname 内に含めようとすると、SQLCODE -343 エラーが生成されます。
-
ハイフン (-) 文字を dbname 内で使用することは認められていません (ハイフンは有効な SQL 識別子文字ではありません)。ただし、他の方法で作成されたネームスペース名には、ハイフン文字が含まれている場合があります。
-
dbname の文字数は 63 文字以内である必要があります。これより長い dbname の場合は、適切な %msg と共に SQLCODE -400 致命的エラーが生成されます。
指定された dbname ネームスペースが既に存在する場合、InterSystems IRIS によって SQLCODE -341 エラーが発行されます。
WITH オプションである ENCRYPTED_DB および/または GLOBAL_JOURNAL_STATE のどちらも指定しないか、どちらか一方、または両方を指定することができます。両方を指定する場合は、それらを WITH ENCRYPTED_DB GLOBAL_JOURNAL_STATE=NO のようにスペースで区切ります。
既定では、CREATE DATABASE は、mgr ディレクトリ内に 2 つのデータベースを作成します。このディレクトリには dbname の名前のサブディレクトリがあり、その下には C (コード) および D (データ) という 2 つのサブディレクトリがあります。これらの各サブディレクトリには、IRIS.DAT ファイル、iris.lck ファイル、および空のストリーム・フォルダが含まれています。例えば、Windows システムでは、CREATE DATABASE Barney によってネームスペース BARNEY および以下のデータベース・ファイルが作成されます。
c:\InterSystems\IRIS\mgr\Barney\C containing IRIS.DAT, iris.lck, stream folder c:\InterSystems\IRIS\mgr\Barney\D containing IRIS.DAT, iris.lck, stream folder
C (コード) ディレクトリは、ネームスペースのルーチン・データベースのために使用されます。D (データ) ディレクトリは、ネームスペースのグローバル・データベースのために使用されます。mgr ディレクトリの位置に戻るには、%SYSTEM.Util.ManagerDirectory()Opens in a new tab メソッドを使用します。
オプションの ON DIRECTORY pathname 節では、データベース・ファイルのために、ネームスペースと同じ名前のディレクトリではなく異なる場所を指定できます。例えば以下のようになります。
CREATE DATABASE Flintstone ON DIRECTORY 'c:\InterSystems\IRIS\mgr\Fred'
指定された pathname が既に存在する場合は、InterSystems IRIS によって SQLCODE -341 エラーが発行されます。
CREATE DATABASE コマンドの実行には特権が必要です。CREATE DATABASE を使用する前に、%Admin_Manage リソースを有するユーザとしてログインする必要があります。特権がない場合は、SQLCODE -99 エラー (特権違反) が返されます。
$SYSTEM.Security.Login()Opens in a new tab メソッドを使用して、以下のようにユーザに適切な特権を割り当ててください。
DO $SYSTEM.Security.Login("_SYSTEM","SYS")
&sql( )
$SYSTEM.Security.Login メソッドを呼び出すには、%Service_Login:Use 特権が必要です。詳細は、"%SYSTEM.SecurityOpens in a new tab" を参照してください。
管理ポータルからネームスペースを作成することもできます。[システム管理]、[構成]、[システム構成]、[ネームスペース] の順に選択して、既存のネームスペースをリストします。既存ネームスペースのこのテーブルの一番上で、[新規ネームスペースの作成] をクリックできます。
1 つの InterSystems IRIS インスタンスに設定できるネームスペース数の最大数は 2048 です。
引数
dbname
作成するデータベース (ネームスペース) の名前。
pathname
データベースのルート・パス名の位置を示す引数 (オプション)。引用符付きの文字列として指定します。C および D ディレクトリは、このルート・パスのサブディレクトリとして作成されます。既定では、データベースは mgr ディレクトリ内に作成されます。
WITH ENCRYPTED_DB
データベースを暗号化するかどうかを指定する引数 (オプション)。既定では、暗号化されません。
WITH GLOBAL_JOURNAL_STATE
データベースをジャーナルするかどうかを指定する引数 (オプション)。YES の場合は、データベースをジャーナルするよう指定します (推奨)。NO の場合は、データベースをジャーナルしないよう指定します。等号 (=) は任意で使用できます。既定では、ジャーナルされます。
関連項目
-
DROP DATABASE コマンド
-
USE DATABASE コマンド