PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.1 » Internes » Déclaration du catalogue système et contenu initial » Commandes BKI

67.4. Commandes BKI #

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

Crée une table nommée nomtable, possédant l'OID tableoid et composée des colonnes données entre parenthèses.

Les types de colonnes suivants sont supportés directement par 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). Bien qu'il soit possible de créer des tables contenant des colonnes d'autres types, cela ne peut pas être réalisé avant que pg_type ne soit créé et rempli avec les entrées appropriées. (Ce qui signifie en fait que seuls ces types de colonnes peuvent être utilisés dans les tables utilisant le « bootstrap » mais que les catalogues ne l'utilisant pas peuvent contenir tout type interne.)

Quand bootstrap est précisé, la table est uniquement construite sur disque ; rien n'est entré dans pg_class, pg_attribute, etc, pour cette table. Du coup, la table n'est pas accessible par les opérations SQL standard tant que ces entrées ne sont pas réalisées en dur (à l'aide de commandes insert). Cette option est utilisée pour créer pg_class, etc.

La table est créée partagée si shared_relation est indiqué. L'OID du type de ligne de la table (OID de pg_type) peut en option être indiquée via la clause rowtype_oid ; dans le cas contraire, un OID est automatiquement généré pour lui. (La clause rowtype_oid est inutile si bootstrap est spécifié, mais il peut néanmoins être fourni pour documentation.)

open nomtable

Ouvre la table nommée nomtable pour l'ajout de données. Toute table alors ouverte est fermée.

close nomtable

Ferme la table ouverte. Le nom de la table peut être indiqué pour vérification mais ce n'est pas nécessaire.

insert ( [valeur_oid] valeur1 valeur2 ... )

Insère une nouvelle ligne dans la table ouverte en utilisant valeur1, valeur2, etc., comme valeurs de colonnes.

La valeur NULL peut être indiquée en utilisant le mot clé spécial _null_. Les valeurs qui ne ressemblent pas à des identifiants ou à des chaînes de nombres doivent être placées entre guillemets simples. (Pour inclure un guillemet simple dans une valeur, écrivez la deux fois. Les caractères d'échappement de chaîne (les antislash) sont aussi autorisés dans une chaîne.)

declare [unique] index nomindex oidindex on nomtable using nomam ( classeop1 nom1 [, ...] )

Crée un index nommé nomindex, d'OID indexoid, sur la table nommée nomtable en utilisant la méthode d'accès nommée nomam. Les champs à indexer sont appelés nom1, nom2 etc., et les classes d'opérateur à utiliser sont respectivement classeop1, classeop2 etc. Le fichier index est créé et les entrées appropriées du catalogue sont ajoutées pour lui, mais le contenu de l'index n'est pas initialisé par cette commande.

declare toast toasttableoid toastindexoid on nomtable

Crée une table TOAST pour la table nommée nomtable. La table TOAST se voit affecter l'OID toasttableoid et son index l'OID toastindexoid. Comme avec declare index, le remplissage de l'index est reporté.

build indices

Remplit les index précédemment déclarés.