DBConnector: createTable()
指定されたテーブル定義情報からテーブルを作成します。
この関数は非同期関数です。
- この関数は基底クラスでは実装されていません。派生クラスでは以下に示す仕様を満たすようにこの関数を実装する必要があります。
構文
dbConnector.createTable(tableSchema, ifNotExists) => Promise<boolean>
引数
-
tableSchema
:object
テーブル定義情報を持つオブジェクトです。これは以下のプロパティを持ちます:
-
name
:string
テーブル名です。
-
primaryKey
:Array<string>
|undefined
(省略可)主キーとして使用するカラム名の順序付きリストです。
-
columns
:object
カラム情報をプロパティとして持つオブジェクトです。 各プロパティ名はカラム名が使用されます。
各カラム情報は以下のプロパティを持つオブジェクトです:
-
type
:string
カラムの型名です。
-
unique
:boolean
(省略可)UNIQUE
制約を持つかどうかです。true
ならUNIQUE
制約を持ち、false
なら持ちません。このプロパティの指定は任意です。指定しない場合、
UNIQUE
制約を持ちません。 -
nullable
:boolean
(省略可)NULL
を許容するかどうかです。true
なら許容し、false
なら許容しません(つまりNOT NULL
制約を持ちます)。このプロパティの指定は任意です。指定しない場合、
NULL
を許容します。 -
defaultValue
:string
またはnumber
(省略可)カラムの既定値です。
レコードの挿入時、対応するカラムの値が欠損している場合にこの値が使用されます。
このプロパティの指定は任意です。指定がない場合、既定値は設定されません。
-
foreignKey
:object
(省略可)外部キー制約を表すオブジェクトです。これは以下のプロパティを持ちます:
-
table
:string
外部キーの定義元として参照するテーブル名です。
-
to
:string
外部キーの定義元として参照するカラム名です。
-
onUpdate
:string
ON UPDATE
アクションの種別です。以下の値が有効です(カッコ内は対応する SQL のキーワードです):
"set-null"
(SET NULL
)"set-default"
(SET DEFAULT
)"cascade"
(CASCADE
)"restrict"
(RESTRICT
)"no-action"
(NO ACTION
)
このプロパティの指定は任意です。指定がない場合、
"no-action"
が設定されます。 -
onDelete
:string
ON DELETE
アクションの種別です。指定できる値は
onUpdate
と同様です。このプロパティの指定は任意です。指定がない場合、
"no-action"
が設定されます。
-
-
-
-
ifNotExists
:boolean
(省略可)CREATE TABLE
文でIF NOT EXISTS
を使用するかどうかです。true
ならIF NOT EXISTS
を使用し、false
なら使用しません。この引数の指定は任意です。指定がない場合、
IF NOT EXISTS
を使用します(true
)。
返値: Promise<boolean>
テーブル作成が完了した際に履行される Promise
です。
履行した際、テーブルが作成されたかどうかを示す boolean
を与えます。
true
ならテーブルが作成されたことを示し、false
なら作成されなかったことを示します。
例外
以下の例外は返値の Promise
が棄却された際に発生します。
DBInternalError
- この関数が未実装だった場合
DBError
- テーブルの作成に失敗した場合
-
DBInternalError
をtry-catch
文の中でcatch
した場合、何もせず再びthrow
してください。この例外はアプリケーション実行時に発生するべきではありません。その他のアプリケーションエラーと区別するため、この関数で発生した例外は必ず
instanceof
で型を検査してください。
解説
指定されたテーブル定義情報からテーブルを作成します。