create tablename tableoid [bootstrap] [shared_relation] [rowtype_oid oid] (name1 = type1 [FORCE NOT NULL | FORCE NULL ] [, name2 = type2 [FORCE NOT NULL | FORCE NULL ], ...])创建一个名为 tablename、OID 为 tableoid 的表,其列在括号中给出。
以下列类型由 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,则表将被创建为共享表。表行类型 OID(pg_type OID)可以选择通过 rowtype_oid 子句指定;如果未指定,则会自动为其生成一个 OID。(如果指定了 bootstrap,则 rowtype_oid 子句无用,但仍可提供以供文档记录。)
open tablename打开名为 tablename 的表以插入数据。任何当前打开的表都会被关闭。
close tablename关闭已打开的表。必须提供表名以进行交叉检查。
insert ( [oid_value] value1 value2 ... )使用 value1、value2 等作为其列值,向已打开的表插入新行。
NULL 值可以使用特殊关键字 _null_ 指定。看起来不像标识符或数字字符串的值必须用单引号括起来。(要在值中包含单引号,请写两次。字符串中的反斜杠转义也是允许的。)
declare [unique] index indexname indexoid on tablename using amname ( opclass1 name1 [, ...] )在名为 tablename 的表上创建一个名为 indexname、OID 为 indexoid 的索引,使用 amname 访问方法。要索引的字段称为 name1、name2 等,相应的操作符类为 opclass1、opclass2 等。此命令会创建索引文件并为其创建相应的目录条目,但不会初始化索引内容。
declare toast toasttableoid toastindexoid on tablename为名为 tablename 的表创建一个 TOAST 表。TOAST 表被分配 OID toasttableoid,其索引被分配 OID toastindexoid。与 declare index 一样,索引的填充被推迟。
build indices填充先前已声明的索引。