Skip to content

75.4.BKI命令#

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 直接支持:boolbyteachar(1 字节)、nameint2int4regprocregclassregtypetextoidtidxidcidint2vectoroidvector_int4(数组)、_text(数组)、_oid(数组)、_char(数组)、_aclitem(数组)。尽管可以创建包含其他类型列的表,但在创建和填充 pg_type 之前无法执行此操作。(这实际上意味着只有这些列类型才能用于引导目录,但非引导目录可以包含任何内置类型。)

指定 bootstrap 时,表将仅在磁盘上创建;不会在 pg_classpg_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 ... )

使用 value1value2 等作为列值,将新行插入到打开的表中。

可以使用特殊关键字 _null_ 指定 NULL 值。看起来不像标识符或数字字符串的值必须用单引号引起来。(要将单引号包含在值中,请写两次。转义字符串样式的反斜杠转义符也允许在字符串中使用。)

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

在名为 tablename 的表上创建名为 indexname 的索引,OID 为 indexoid,使用 amname 访问方法。要索引的字段称为 name1name2 等,要使用的操作符类分别是 opclass1opclass2 等。创建索引文件并为其创建适当的目录条目,但此命令不会初始化索引内容。

declare toast toasttableoid toastindexoid on tablename

为名为 tablename 的表创建 TOAST 表。TOAST 表被分配 OID toasttableoid,其索引被分配 OID toastindexoid。与 declare index 一样,索引的填充被推迟。

构建索引

填充先前已声明的索引。