71.4. Команды BKI
createимя_таблицыoid_таблицы[bootstrap] [shared_relation] [rowtype_oidoid] (имя1=тип1[FORCE NOT NULL|FORCE NULL] [,имя2=тип2[FORCE NOT NULL|FORCE NULL], ...])Создать таблицу
имя_таблицыс заданным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, таблица создаётся как общая. Дополнительным предложениемrowtype_oidможет быть задан OID типа строки (OID записи вpg_type); если он не указан, 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 toastoid_таблицы_toastoid_индекса_toastonимя_таблицы Создаёт таблицу TOAST для таблицы
имя_таблицы. Таблице TOAST назначается OID, равныйoid_таблицы_toast, а её индексу назначается OID, равныйoid_индекса_toast. Как и сdeclare index, заполнение индекса откладывается.build indicesЗаполнить индексы, объявленные ранее.