68.4. Comandos BKI #

create tablename tableoid [bootstrap] [shared_relation] [rowtype_oid oid] (name1 = type1 [FORCE NOT NULL | FORCE NULL ] [, name2 = type2 [FORCE NOT NULL | FORCE NULL ], ...])

Crea una tabla llamada tablename, y que tenga el OID tableoid, con las columnas indicadas entre paréntesis.

Los siguientes tipos de columna son compatibles directamente por bootstrap.c: bool, bytea, char (1 byte), name, int2, int4, regproc, regclass, regtype, text, oid, tid, xid, cid, int2vector, oidvector, _int4 (array), _text (array), _oid (array), _char (array), _aclitem (array). Aunque es posible crear tablas que contengan columnas de otros tipos, esto no se puede hacer hasta después de que pg_type haya sido creado y completado con las entradas apropiadas. (Eso significa efectivamente que solo estos tipos de columna se pueden utilizar en los catálogos de bootstrap, pero los catálogos que no son de bootstrap pueden contener cualquier tipo integrado).

Cuando se especifica bootstrap, la tabla solo se creará en el disco; no se introduce nada en pg_class, pg_attribute, etc., para ella. Por lo tanto, la tabla no será accesible mediante operaciones SQL ordinarias hasta que dichas entradas se realicen de la manera difícil (con comandos insert). Esta opción se utiliza para crear los propios catálogos pg_class, etc.

La tabla se crea como compartida (shared) si se especifica shared_relation. El OID del tipo de fila de la tabla (OID de pg_type) se puede especificar opcionalmente a través de la cláusula rowtype_oid; si no se especifica, se genera automáticamente un OID para él. (La cláusula rowtype_oid es inútil si se especifica bootstrap, pero se puede proporcionar de todos modos para documentación).

open tablename

Abre la tabla llamada tablename para la inserción de datos. Cualquier tabla actualmente abierta se cierra.

close tablename

Cierra la tabla abierta. Se debe proporcionar el nombre de la tabla como comprobación cruzada.

insert ( [oid_value] value1 value2 ... )

Inserta una nueva fila en la tabla abierta utilizando value1, value2, etc., para los valores de sus columnas.

Los valores nulos se pueden especificar utilizando la palabra clave especial _null_. Los valores que no parezcan identificadores o cadenas de dígitos deben estar entre comillas simples. (Para incluir una comilla simple en un valor, escríbela dos veces. También se permiten escapes de barra diagonal inversa al estilo de las cadenas de escape).

declare [unique] index indexname indexoid on tablename using amname ( opclass1 name1 [, ...] )

Crea un índice llamado indexname, que tiene el OID indexoid, en la tabla llamada tablename, utilizando el método de acceso amname. Los campos a indexar se denominan name1, name2, etc., y las clases de operadores a utilizar son opclass1, opclass2, etc., respectivamente. El archivo de índice se crea y se realizan las entradas de catálogo correspondientes para él, pero el contenido del índice no se inicializa con este comando.

declare toast toasttableoid toastindexoid on tablename

Crea una tabla TOAST para la tabla llamada tablename. A la tabla TOAST se le asigna el OID toasttableoid y a su índice se le asigna el OID toastindexoid. Al igual que con declare index, el llenado del índice se pospone.

build indices

Llena los índices que se han declarado previamente.