56.2. BKIコマンド

create tablename tableoid [bootstrap] [shared_relation] [without_oids] [rowtype_oid oid] (name1 = type1 [, name2 = type2, ...])

括弧で与えられた列と、OID tableoidを持つtablenameというテーブルを作成します。

次の列型はbootstrap.cで直接サポートされます。 boolbyteachar(1バイト)、nameint2int4regprocregclassregtypetextoidtidxidcidint2vectoroidvector_int4(配列)、_text(配列)、_oid(配列)、_char(配列)、_aclitem(配列)。 この他の型を持つテーブルを作成することはできますが、pg_typeが完了し適切な項目で埋められるまで完了させることができません。(これらの列型のみブートストラップされたテーブルで使用されますが、非ブートストラップカタログは如何なる組み込み型も含む事があるという事を実際に意味しています。)

bootstrapが指定された場合、テーブルはディスク上に作成されるだけで、pg_classpg_attributeなどにその項目は登録されません。 したがって、これらの項目が(insertコマンドで)固定化されるまで、普通のSQL操作でこのテーブルにアクセスできません。 このオプションはpg_classなど自身を作成するために使用されます。

shared_relationが指定された場合、テーブルは作成されます。 without_oidsが指定されていない限りテーブルはOIDを持ちます。 テーブルの行型OID(pg_type OID)はrowtype_oid句で指定できます。 指定されなければ、OIDは自動的に生成されます。 (bootstrap が指定されていれば、rowtype_oid句は役に立ちません。しかし、文書化のためにともかく指定はできます。)

open tablename

データを挿入するためにtablenameと名前が付けられたテーブルを開きます。 現在開いているテーブルは閉じられます。

close [tablename]

開いているテーブルを閉じます。テーブル名は様々な方法で検査可能ですが、必要性はありません

insert [OID = oid_value] ( value1 value2 ... )

value1value2などを列の値として、oid_valueをOIDとし、開いているテーブルに行を挿入します。 もしoid_valueがゼロ(0)、もしくは句が省略され、テーブルがOIDを所有していれば、次の有効なOIDが割り当てられます。

NULL値は特別なキーワード、_null_によって指定できます。 空白を含む値は二重引用符で囲まなければなりません。

declare [unique] index indexname indexoid on tablename using amname ( opclass1 name1 [, ...] )

amnameアクセスメソッドを使用して、tablenameと名付けられたテーブル上に、OID indexoidを所有する、indexnameという名前のインデックスを作成します。 インデックスが付けられるフィールドは、name1name2など、そして使用される演算子クラスはopclass1opclass2などとそれぞれ呼ばれます。 このインデックスファイルは作成され、適切なカタログ項目が作成されますが、このコマンドではインデックスの内容の初期化を行いません。

declare toast toasttableoid toastindexoid on tablename

tablenameという名前のテーブル用のTOASTテーブルを作成します。 このTOASTテーブルはOIDとしてtoasttableoidが割り当てられ、そのインデックスはOIDとしてtoastindexoidが割り当てられます。 declare indexと同様、インデックスの作成は遅延されます。

build indices

前に宣言されたインデックスを作成します。