PostgreSQL 8.2.3 中文文档
后退快退章53. BKI 后端接口快进前进

53.2. BKI 命令

create [bootstrap] [shared_relation] [without_oids] tablename tableoid (name1 = type1 [, name2 = type2, ...])

创建一个名为 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 等系统表里面输入任何东西。因此这样的表将无法被普通的 SQL 操作访问,直到那些记录用硬办法(用 insert 命令)填入。这个选项用于创建 pg_class 等自身。

如果声明了 shared_relation ,那么表就作为共享表创建。除非声明了 without_oids ,否则将会有 OID 。

open tablename

打开一个名为 tablename 的表,准备插入数据。任何当前已经打开的表都会被关闭。

close [tablename]

关闭打开的表。给出的表名用于交叉检查,但并不是必须的。

insert [OID = oid_value] ( value1 value2 ... )

如果 oid_value 为零,那么用 value1, value2 等作为字段值以及 oid_value 作为其 OID(对象标识)向打开的表插入一条新记录,否则省略子句,而表则拥有 OID ,并赋予下一个可用的 OID 数值。

NULL 可以用特殊的关键字 _null_ 声明。包含空白的值必须用双引号栝起。

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

在一个叫 tablename 的表上用 amname 访问方法创建一个 OID 是 indexoid 的叫做 indexname 的索引。索引的字段叫 name1, name2 等,而使用的操作符类分别是 opclass1, opclass2 等。将会创建索引文件和恰当的系统表记录,但是索引内容不会被此命令初始化。

declare toast toasttableoid toastindexoid on tablename

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

build indices

填充前面声明的索引。


后退首页前进
BKI 文件格式上一级系统初始化的 BKI 文件的结构