Команды 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
Заполняет индексы, объявленные ранее.