Документация по PostgreSQL 9.4.1 | |||
---|---|---|---|
Пред. | Уровень выше | Глава 60. Внутренний интерфейс BKI | След. |
60.2. Команды BKI
- create имя_таблицы oid_таблицы [bootstrap] [shared_relation] [without_oids] [rowtype_oid oid] (имя1 = тип1 [, имя2 = тип2, ...])
Создать таблицу имя_таблицы с заданным 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 toast oid_таблицы_toast oid_индекса_toast on имя_таблицы
Создаёт таблицу TOAST для таблицы имя_таблицы. Таблице TOAST назначается OID, равный oid_таблицы_toast, а её индексу назначается OID, равный oid_индекса_toast. Как и с declare index, заполнение индекса откладывается.
- build indices
Заполнить индексы, объявленные ранее.
Пред. | Начало | След. |
Формат файла BKI | Уровень выше | Структура файла BKI |