50.2. Команды BKI

create [bootstrap] [shared_relation] [without_oids] имя_таблицы (имя1 = тип1 [, имя2 = тип22, ...])

Создать таблицу с именем имя_таблицы и колонками, которые указаны в скобках.

Напрямую через bootstrap.c поддерживаются следующие типы колонок: bool, bytea, char (1 byte), name, int2, int4, regproc, regclass, regtype, text, oid, tid, xid, cid, int2vector, oidvector, _int4 (array), _text (array), _aclitem (array). Таким образом, невозможно создать таблицы, содержащие колонки других типов, это не может быть выполнено пока не будет содана таблица pg_type и не будут заполнена соответствующими записями.

Если указана опция bootstrap, таблица будет только создана на диске; для неё невозможно ничего ввести в таблицы pg_class, pg_attribute и т.д. Таким образом, эта таблица не будет доступна для обычных SQL операций пока такие записи не будут сделаны грубым способом (с помощью команды insert). Данная опция используется для создания самих таблиц типа pg_class и т.д.

Если указана опция shared_relation, то таблица создаётся как разделяемая. Она бцдет иметь колонку OID, если не указана опция without_oids.

open имя_таблицы

Открыть таблицу с имеем tablename для дальнейших действий.

close [имя_таблицы]

Закрыть открытую таблицу с именем имя_таблицы. Если таблица имя_таблицы не открыта, возникнет ошибка. Если не задано имя_таблицы, то будет закрыта текущая открытая таблица.

insert [OID = значение_oid] (значение1 значение2 ...)

Вставить новую строку в открытыю таблицу, используя знаение1, значение2 и т.д., для соответствующих значений колонок и значение_oid для колонки OID. Если значение_oid равно нулю (0) или оно опущено, то используется следующее доступное значение OID.

Значения NULL могут быть заданы с помощью специального ключевого слова _null_. Значения, содержащие пробелы должны быть заключены в двойные кавычки.

declare [unique] index имя_индекса on имя_таблицы using amname (opclass1 имя1 [, ...])

Создать индекс с именем indexname для таблицы с именем tablename, используя метод доступа amname. Поля индекса называются имя1, имя2 и т.д., а используемые классы операторов соответственно opclass1, opclass2 и т.д. Создаётся файл индекса и для него делается соответствующие записи каталога, но содержимое индекса этой командой не инициализируется.

build indices

Заполнить содержимое индекса, который был определён ранее.