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_ 指定。
看起来不像标识符或数字字符串的值必须用单引号括起来。
(要在值中包含一个单引号,把它写两遍。
字符串中也允许转义字符串风格的反斜杠转义。)
declare [unique]
index indexname
indexoid
on tablename
using amname
( opclass1
name1
[, ...] )
在名为
tablename 的表上,
使用
amname 访问
方法,创建一个名为
indexname、OID 为
indexoid
的索引。要建立索引的字段名为
name1、
name2 等,使用的
操作符类则分别为
opclass1、
opclass2 等。
索引文件会被创建,并且会为它建立适当的目录条目,但该命令不会
初始化索引内容。
declare toast
toasttableoid
toastindexoid
on tablename
为名为
tablename
的表创建一个 TOAST 表。
TOAST 表被分配 OID
toasttableoid,
其索引被分配 OID
toastindexoid。
与 declare index 一样,索引的填充被
推迟。
build indices填充之前已声明的索引。