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
直接支持: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
等中输入任何内容。因此,在使用困难的方式(使用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
...)
使用
value1
、value2
等作为列值,将新行插入到打开的表中。可以使用特殊关键字
_null_
指定 NULL 值。看起来不像标识符或数字字符串的值必须用单引号引起来。(要将单引号包含在值中,请写两次。转义字符串样式的反斜杠转义符也允许在字符串中使用。)declare
[unique
]index
indexname
indexoid
on
tablename
using
amname
(
opclass1
name1
[, ...])
在名为
tablename
的表上创建名为indexname
的索引,OID 为indexoid
,使用amname
访问方法。要索引的字段称为name1
、name2
等,要使用的操作符类分别是opclass1
、opclass2
等。创建索引文件并为其创建适当的目录条目,但此命令不会初始化索引内容。declare toast
toasttableoid
toastindexoid
on
tablename
为名为
tablename
的表创建 TOAST 表。TOAST 表被分配 OIDtoasttableoid
,其索引被分配 OIDtoastindexoid
。与declare index
一样,索引的填充被推迟。构建索引
填充先前已声明的索引。