FirebirdSQL logo
 DOMAININDEX 

Compteur de format

Certaines modifications apportées à la structure des tables augmenteront le compteur de format attribué à chaque table.Le nombre de formats pour chaque table est limité à 255.Lorsque le compteur de format atteint cette valeur, vous ne pouvez plus modifier la structure de la table.

Remise à zéro du compteur de format
Pour réinitialiser le compteur de format, la base de données doit être sauvegardée et restaurée (avec l’utilitaire gbak).

la commande ADD

La phrase ADD vous permet d’ajouter une nouvelle colonne ou une nouvelle contrainte de table.La syntaxe de définition d’une colonne et la syntaxe de description d’une contrainte de table sont exactement les mêmes que la syntaxe décrite dans le document CREATE TABLE.

impact sur le compteur de format :
  • Chaque fois qu’une nouvelle colonne est ajoutée, le numéro du format est incrémenté de un.

  • L’ajout d’une nouvelle contrainte de table n’entraîne pas l’augmentation du numéro de format.

Example 1. Ajout d’une colonne à une table
ALTER TABLE COUNTRY
ADD CAPITAL VARCHAR(25);
Example 2. Ajout d’une colonne avec la restriction `NOT NULL'.
ALTER TABLE OBJECTS
ADD QUANTITY INT DEFAULT 1 NOT NULL;
Important

Notez la clause DEFAULT, qui est obligatoire pour ajouter une contrainte NOT NULL s’il y a des données dans la table.Le fait est que dans ce cas, il y a également un contrôle de validité des données.Et comme lorsqu’une nouvelle colonne est ajoutée, elle contient NULL pour toutes les lignes de la table, une exception sera générée.

Example 3. Ajout d’une colonne avec une restriction d’unicité et suppression d’une autre colonne
ALTER TABLE COUNTRY
  ADD CAPITAL VARCHAR(25) UNIQUE,
  DROP CURRENCY;

Pour ajouter des contraintes au niveau de la table, utilisez la phrase ADD [CONSTRAINT].

Ajout d’une contrainte de contrôle et d’une clé étrangère

ALTER TABLE JOB
ADD CONSTRAINT CHK_SALARY CHECK (MIN_SALARY < MAX_SALARY),
ADD FOREIGN KEY (JOB_COUNTRY)
REFERENCES COUNTRY (COUNTRY);
Warning

Attention, lorsqu’on ajoute une nouvelle contrainte CHECK, il n’y a pas de vérification que les données précédemment saisies correspondent à celle-ci.Nous vous recommandons donc de vérifier les données de la table avant d’ajouter une telle contrainte.

La commande DROP

La commande DROP supprime la colonne de la table spécifiée.Une colonne de table ne peut pas être supprimée si des dépendances existent sur elle.En d’autres termes, la colonne ne doit pas être référencée pour pouvoir être supprimée avec succès.Les références à une colonne peuvent être contenues dans :

  • dans les contraintes de colonnes ou de tables ;

  • dans les index ;

  • dans les procédures stockées et les déclencheurs ;

  • dans les vues.

Chaque fois qu’une colonne est supprimée, le numéro du format est incrémenté de un.

La commande DROP CONSTRAINT

La commande DROP CONSTRAINT supprime la contrainte de colonne ou de table spécifiée.Une contrainte de clé primaire ou une contrainte de clé unique ne peut pas être supprimée si elle est utilisée dans une contrainte de clé étrangère d’une autre table.Dans ce cas, la contrainte FOREIGN KEY doit être supprimée avant de supprimer la contrainte PRIMARY KEY ou UNIQUE à laquelle elle fait référence.

La suppression d’une contrainte de colonne ou de table n’augmente pas le numéro de format.