Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

CREATE DATABASE

データベース (ネームスペース) を作成します。

Synopsis

CREATE DATABASE dbname [ON DIRECTORY pathname]
   [WITH [ENCRYPTED_DB]  [GLOBAL_JOURNAL_STATE [=] {YES | NO}] ]

引数

dbname 作成するデータベース (ネームスペース) の名前。
pathname オプション — データベースのルート・パス名の位置。引用符付きの文字列として指定します。C および D ディレクトリは、このルート・パスのサブディレクトリとして作成されます。既定では、データベースは mgr ディレクトリ内に作成されます。
WITH ENCRYPTED_DB オプション — データベースを暗号化するかどうかを指定します。既定では、暗号化されません。
WITH 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 ネームスペースが既に存在する場合、Caché によって SQLCODE -341 エラーが発行されます。

WITH オプションである ENCRYPTED_DB および/または GLOBAL_JOURNAL_STATE のどちらも指定しないか、どちらか一方、または両方を指定することができます。両方を指定する場合は、それらを WITH ENCRYPTED_DB GLOBAL_JOURNAL_STATE=NO のようにスペースで区切ります。

既定では、CREATE DATABASE は、mgr ディレクトリ内に 2 つのデータベースを作成します。このディレクトリには dbname の名前のサブディレクトリがあり、その下には C (コード) および D (データ) という 2 つのサブディレクトリがあります。これらの各サブディレクトリには、CACHE.DAT ファイル、cache.lck ファイル、および空のストリーム・フォルダが含まれています。例えば、Windows システムでは、CREATE DATABASE Barney によってネームスペース BARNEY および以下のデータベース・ファイルが作成されます。

C:\InterSystems\Cache\mgr\Barney\C containing CACHE.DAT, cache.lck, stream folder
C:\InterSystems\Cache\mgr\Barney\D containing CACHE.DAT, cache.lck, stream folder

C (コード) ディレクトリは、ネームスペースのルーチン・データベースのために使用されます。D (データ) ディレクトリは、ネームスペースのグローバル・データベースのために使用されます。

オプションの ON DIRECTORY pathname 節では、データベース・ファイルのために、ネームスペースと同じ名前のディレクトリではなく異なる場所を指定できます。例えば以下のようになります。

CREATE DATABASE Flintstone ON DIRECTORY 'C:\InterSystems\Cache\mgr\Fred'

指定された pathname が既に存在する場合は、Caché によって 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" を参照してください。

管理ポータルからネームスペースを作成することもできます。システム, 構成, ネームスペースを選択して既存のネームスペースをリストします。既存ネームスペースのこのテーブルの一番上で、[新規ネームスペースの作成] をクリックできます。

関連項目

FeedbackOpens in a new tab