69.4. BKI 命令
-
create
tablename
tableoid
[bootstrap
] [shared_relation
] [without_oids
] [rowtype_oid
oid
] (name1
=type1
[FORCE NOT NULL
|FORCE NULL
] [,name2
=type2
[FORCE NOT NULL
|FORCE NULL
], ...])- 创建一个名为*
tablename
*并具有 OID *tableoid
*的表,并在括号中给出各列。
- 创建一个名为*
bootstrap.c
直接支持以下列类型:bool
,bytea
,char
(1 个字节),name
,int2
,int4
,regproc
,regclass
,regtype
,text
,oid
,tid
,xid
,cid
,int2vector
,oidvector
,array ,_text
(数组),_oid
(数组),_char
(数组),_aclitem
(数组)。尽管可以创建包含其他类型的列的表,但是只有在创建pg_type
并填充了适当的条目之后才能完成此操作。 (这实际上意味着在引导目录中只能使用这些列类型,但非引导目录可以包含任何内置类型.)
指定bootstrap
时,将仅在磁盘上创建表;否则,将在磁盘上创建表。没有为此 Importingpg_class
,pg_attribute
等。因此,除非通过困难的方式(使用insert
命令)对此类条目进行访问,否则普通的 SQL 操作将无法访问该表。此选项用于自己创建pg_class
等。
如果指定shared_relation
,则该表将创建为共享表。除非指定without_oids
,否则它将具有 OID。可以通过rowtype_oid
子句指定表的行类型 OID(pg_type
OID);如果未指定,将自动为其生成 OID。 (如果指定了bootstrap
,则rowtype_oid
子句是无用的,但无论如何也可以将其提供给文档使用.)
-
open
tablename
- 打开名为*
tablename
*的表以插入数据。任何当前打开的表均已关闭。
- 打开名为*
-
close
tablename
- 关闭打开的表。该表的名称必须作为交叉检查给出。
-
insert
[OID =
oid_value
](
value1
value2
...)
- 将*
value1
,value2
等用于其列值,并将oid_value
作为其 OID 插入新表。如果oid_value
*为零(0)或省略了该子句,并且该表具有 OID,则分配下一个可用的 OID。
- 将*
可以使用特殊关键字_null_
指定 NULL 值。看起来不像标识符或数字字符串的值必须用双引号引起来。
-
declare
[unique
]index
indexname
indexoid
on
tablename
using
amname
(
opclass1
name1
[, ...])
- 使用*
amname
访问方法,在名为tablename
*的表上创建具有 OID *indexoid
的索引indexname
。要索引的字段称为name1
,name2
等,并且要使用的运算符类别分别为opclass1
,opclass2
*等。创建索引文件并为其创建适当的目录条目,但是此命令未初始化索引内容。
- 使用*
-
declare toast
toasttableoid
toastindexoid
on
tablename
- 为名为*
tablename
*的表创建一个 TOAST 表。 TOAST 表分配了 OID *toasttableoid
*,而其索引分配了 OID *toastindexoid
*。与declare index
一样,索引的填充被推迟。
- 为名为*
-
build indices
- 填写先前已声明的索引。