Postgresql 中文操作指南

75.4. BKI Commands #

  • 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 字节)、nameint2int4regprocregclassregtypetextoidtidxidcidint2vectoroidvectorint4(数组)、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 [, …​] )

    • 使用 amname 访问方法,在名为 tablename 的表上创建名为 indexname、具有 OID indexoid 的索引。要索引的字段称为 name1name2 等,要使用的运算符类分别是 opclass1opclass2 等。索引文件已创建,并且为其创建了适当的目录条目,但索引内容未通过此命令进行初始化。

  • declare toast toasttableoid toastindexoid on tablename

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

  • build indices

    • 填写先前已声明的索引。