Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

67.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 一様,索引的填充推迟执行。

构建索引

填入之前已声明的索引。