Команды BKI

56.2. Команды BKI

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

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

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

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

Если указана опция shared_relation, то таблица создаётся как разделяемая. Она бцдет иметь колонку OID, если не указана опция without_oids. С помощью предложения rowtype_oid может быть указан необязательный OID типа строки таблицы (pg_type OID); если он не указан, данный 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 amname ( opclass1 имя1 [, ...] )

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

declare toast toasttableoid toastindexoid on tablename

Создать TOAST таблицу для таблицы с именем tablename. TOAST таблице назначается OID toasttableoid и его индекс назначается OID toastindexoid. Как и с declare index, заполнение индекса откладывается.

build indices

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

Back to top

(С) Виктор Вислобоков, 2008-2023