67.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 toastoid_таблицы_toastoid_индекса_toastonимя_таблицы
- Создаёт таблицу TOAST для таблицы - имя_таблицы. Таблице TOAST назначается OID, равный- oid_таблицы_toast, а её индексу назначается OID, равный- oid_индекса_toast. Как и с- declare index, заполнение индекса откладывается.
- build indices
- Заполнить индексы, объявленные ранее.