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
前に宣言されたインデックスを作成します。