FirebirdSQL logo

Exemples

Example 1. Création d’une table temporaire globale au niveau de la connexion
CREATE GLOBAL TEMPORARY TABLE MYCONNGTT (
    ID INTEGER NOT NULL PRIMARY KEY,
    TXT VARCHAR(32),
    TS TIMESTAMP DEFAULT CURRENT_TIMESTAMP)
ON COMMIT PRESERVE ROWS;
Example 2. Créez une table temporaire globale de niveau transaction qui fait référence à une table temporaire globale de niveau connexion avec une clé externe.
CREATE GLOBAL TEMPORARY TABLE MYTXGTT (
    ID INTEGER NOT NULL PRIMARY KEY,
    PARENT_ID INTEGER NOT NULL REFERENCES MYCONNGTT(ID),
    TXT VARCHAR(32),
    TS TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

Tables externes

La clause optionnelle EXTERNAL [FILE] indique que la table est stockée en dehors de la base de données dans un fichier texte externe.Les colonnes d’une table stockée dans un fichier externe peuvent être de n’importe quel type, à l’exception des BLOB et des tableaux avec n’importe quel type de données.

Seules les opérations d’ajout de nouvelles lignes (INSERT) et de sélection de données (SELECT) sont autorisées sur une table stockée dans un fichier externe.Les opérations de modification des données existantes (UPDATE) ou de suppression des lignes de cette table (DELETE) ne peuvent pas être effectuées.

Une table externe ne peut pas contenir de restrictions concernant les clés primaires, externes et uniques.Aucun index ne peut être créé pour les champs d’une telle table.

Le fichier de table externe doit être situé sur un périphérique de stockage physiquement situé sur le serveur hébergeant le SGBD.Si le [paramètre]``ExternalFileAccess'' du fichier de configuration firebird.conf contient `Restrict', le fichier de la table externe doit être situé dans l’un des répertoires spécifiés dans l’argument `Restrict'.Si Firebird ne trouve pas le fichier lors de l’accès à la table, il le créera lors du premier accès.

Important

La possibilité d’utiliser des fichiers externes pour les tables dépend de la valeur du ExternalFileAccess dans le fichier de configuration firebird.conf :

  • S’il est défini à None, tout accès au fichier externe est refusé.

  • La valeur Restrict est recommandée pour limiter l’accès aux fichiers externes aux répertoires créés spécifiquement à cet effet par l’administrateur du serveur. Par exemple :

    • ExternalFileAccess = Restrict externalfiles limitera l’accès au répertoire externalfiles du répertoire racine de Firebird.

    • ExternalFileAccess = Restrict d:\databases\outfiles ; e:\infiles limitera l’accès à deux répertoires Windows seulement. Notez que les chemins qui sont des mappings de chemins de réseau ne fonctionneront pas. Les chemins entre guillemets simples ou doubles ne fonctionnent pas non plus.

  • La valeur "Full" permet d’accéder aux fichiers externes n’importe où sur le système de fichiers de l’hôte. Cela crée une vulnérabilité et n’est pas recommandé.