72.4. Команды BKI#

72.4. Команды BKI

72.4. Команды BKI #

create tablename tableoid [bootstrap] [shared_relation] [rowtype_oid oid] (name1 = type1 [FORCE NOT NULL | FORCE NULL ] [, name2 = type2 [FORCE NOT NULL | FORCE NULL ], ...])

Создайте таблицу с именем tablename и с OID tableoid, с колонками, указанными в скобках.

Следующие типы столбцов поддерживаются непосредственно 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 строки таблицы (pg_type OID) может быть опционально указан через rowtype_oid; если не указан, для него автоматически генерируется OID. (Предложение rowtype_oid бесполезно, если указан bootstrap, но ее все равно можно предоставить для документации).

open tablename

Откройте таблицу с именем tablename для вставки данных. Любая текущая открытая таблица будет закрыта.

close tablename

Закройте открытую таблицу. Имя таблицы должно быть указано для проверки.

insert ( [oid_value] value1 value2 ... )

Вставьте новую строку в открытую таблицу, используя value1, value2 и т. д. для значений ее столбцов.

NULL значения можно указать с помощью специального ключевого слова _null_. Значения, которые не выглядят как идентификаторы или числовые строки, должны быть заключены в апострофы. (Чтобы включить апостроф в значение, напишите ее дважды. В строке также разрешены экранированные символы обратного слеша в стиле escape-string-style).

declare [unique] index indexname indexoid on tablename using amname ( opclass1 name1 [, ...] )

Создайте индекс с именем indexname, имеющий OID indexoid, на таблице с именем tablename, используя метод доступа amname. Поля для индексации называются name1, name2 и т.д., а классы операторов для использования - opclass1, opclass2 и т.д. Файл индекса создается, и для него создаются соответствующие записи в каталоге, но содержимое индекса не инициализируется этой командой.

declare toast toasttableoid toastindexoid on tablename

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

build indices

Заполните индексы, которые были ранее объявлены.