71.4. Команды BKI
create
имя_таблицы
oid_таблицы
[bootstrap
] [shared_relation
] [rowtype_oid
oid
] (имя1
=тип1
[FORCE NOT NULL
|FORCE NULL
] [,имя2
=тип2
[FORCE NOT NULL
|FORCE NULL
], ...])Создать таблицу
имя_таблицы
с заданнымoid_таблицы
и столбцами, указанными в скобках.Непосредственно
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
, таблица создаётся как общая. Дополнительным предложениемrowtype_oid
может быть задан OID типа строки (OID записи вpg_type
); если он не указан, OID генерируется автоматически. (Предложениеrowtype_oid
бесполезно, если присутствует указаниеbootstrap
, но его всё равно можно добавить для документирования.)-
open
имя_таблицы
Открыть таблицу
имя_таблицы
для добавления данных. Любая другая таблица, открытая в данный момент, закрывается.-
close
имя_таблицы
Закрыть открытую таблицу. Имя таблицы должно задаваться для перепроверки.
insert
(
[значение_oid
]значение1
значение2
...)
Вставить строку в открытую таблицу с именами столбцов
значение1
,значение2
и т. д.Значения NULL могут задаваться специальным ключевым словом
_null_
. Значения, отличные от идентификаторов и цифровых строк, должны заключаться в двойные кавычки. (Апострофы, включаемые в значение, необходимо дублировать. В строке также допускается экранирование с обратной косой чертой.)-
declare
[unique
]index
имя_индекса
oid_индекса
on
имя_таблицы
using
имя_метода_доступа
(
класс_оп1
имя1
[, ...])
Создать индекс
имя_индекса
с OID, равнымoid_индекса
, в таблицеимя_таблицы
, с методом доступаимя_метода_доступа
. Индекс строится по полямимя1
,имя2
и т. д., и для них используются соответственно классы операторовкласс_оп1
,класс_оп2
и т. д. Эта команда создаёт файл индекса и добавляет соответствующие записи в каталог, но не инициализирует содержимое индекса.-
declare toast
oid_таблицы_toast
oid_индекса_toast
on
имя_таблицы
Создаёт таблицу TOAST для таблицы
имя_таблицы
. Таблице TOAST назначается OID, равныйoid_таблицы_toast
, а её индексу назначается OID, равныйoid_индекса_toast
. Как и сdeclare index
, заполнение индекса откладывается.build indices
Заполнить индексы, объявленные ранее.