Перейти к основному содержимому

Команды 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 не будет создан и заполнен соответствующими записями. (Это фактически означает, что только эти типы столбцов могут использоваться в начальных каталогах, но каталоги без начальных каталогов могут содержать любые встроенные type).

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

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

Создает таблицу TOAST для таблицы имя_таблицы. Таблице TOAST назначается OID, равный oid_таблицы_toast, а ее индексу назначается OID, равный oid_индекса_toast. Как и с declare index, заполнение индекса откладывается.

build indices

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