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