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
и с OIDtableoid
, с колонками, указанными в скобках.Следующие типы столбцов поддерживаются непосредственно
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
, имеющий OIDindexoid
, на таблице с именемtablename
, используя метод доступаamname
. Поля для индексации называютсяname1
,name2
и т.д., а классы операторов для использования -opclass1
,opclass2
и т.д. Файл индекса создается, и для него создаются соответствующие записи в каталоге, но содержимое индекса не инициализируется этой командой.-
declare toast
toasttableoid
toastindexoid
on
tablename
Создайте TOAST-таблицу для таблицы с именем
tablename
. TOAST-таблице присваивается OIDtoasttableoid
, а ее индексу присваивается OIDtoastindexoid
. Как и в случае сdeclare index
, заполнение индекса откладывается.build indices
Заполните индексы, которые были ранее объявлены.