支持的版本:当前 (16) / 15 / 14 / 13 / 12
开发版本:devel
Unsupported versions: 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

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 一样,索引的填充被推迟。

构建索引

填充先前已声明的索引。

提交更正

如果您在文档中看到任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。