create
tablename
tableoid
[bootstrap]
[shared_relation]
[without_oids]
[rowtype_oid oid]
(name1 =
type1
[FORCE NOT NULL | FORCE NULL ] [,
name2 =
type2
[FORCE NOT NULL | FORCE NULL ],
...])
括弧で与えられた列と、OID tableoidを持つtablenameというテーブルを作成します。
次の列型はbootstrap.cで直接サポートされます。
bool、bytea、char(1バイト)、name、int2、int4、regproc、regclass、regtype、text、oid、tid、xid、cid、int2vector、oidvector、_int4(配列)、_text(配列)、_oid(配列)、_char(配列)、_aclitem(配列)。
この他の型を持つテーブルを作成することはできますが、pg_typeが完了し適切な項目で埋められるまで完了させることができません。(これらの列型のみブートストラップカタログで使用されますが、非ブートストラップカタログは如何なる組み込み型も含む事があるという事を実際に意味しています。)
bootstrapが指定された場合、テーブルはディスク上に作成されるだけで、pg_classやpg_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 ... )
value1やvalue2などを列の値として、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という名前のインデックスを作成します。
インデックスが付けられるフィールドは、name1、name2など、そして使用される演算子クラスはopclass1、opclass2などとそれぞれ呼ばれます。
このインデックスファイルは作成され、適切なカタログ項目が作成されますが、このコマンドではインデックスの内容の初期化を行いません。
declare toast
toasttableoid
toastindexoid
on tablename
tablenameという名前のテーブル用のTOASTテーブルを作成します。
このTOASTテーブルはOIDとしてtoasttableoidが割り当てられ、そのインデックスはOIDとしてtoastindexoidが割り当てられます。
declare indexと同様、インデックスの作成は遅延されます。
build indices前に宣言されたインデックスを作成します。