FirebirdSQL logo

ALTER DOMAIN

Destination

Modifier les caractéristiques actuelles d’un domaine ou le renommer.

Disponible en

DSQL, ESQL.

Syntaxe
ALTER DOMAIN domain_name
  [TO new_name]
  [TYPE <datatype>]
  [{SET DEFAULT {<literal> | NULL | <context_var>}} | DROP DEFAULT]
  [{SET | DROP} NOT NULL]
  [{ADD [CONSTRAINT] CHECK (<dom_condition>)} | DROP CONSTRAINT]

<datatype> ::=
    <scalar_datatype> | <blob_datatype> | <array_datatype>

<scalar_datatype> ::= Voir Syntaxe des types de données scalaires.

<blob_datatype> ::= Voir Syntaxe du type de données BLOB.

<array_datatype> ::= Voir syntaxe des tableaux.

<dom_condition> ::=
    <val> <operator> <val>
  | <val> [NOT] BETWEEN <val> AND <val>
  | <val> [NOT] IN (<val> [, <val> ...] | <select_list>)
  | <val> IS [NOT] NULL
  | <val> IS [NOT] DISTINCT <val>
  | <val> IS [NOT] {TRUE | FALSE | UNKNOWN}
  | <val> [NOT] CONTAINING <val>
  | <val> [NOT] STARTING [WITH] <val>
  | <val> [NOT] LIKE <val> [ESCAPE <val>]
  | <val> [NOT] SIMILAR TO <val> [ESCAPE <val>]
  | <val> <operator> {ALL | SOME | ANY} (<select_list>)
  | [NOT] EXISTS (<select_expr>)
  | [NOT] SINGULAR (<select_expr>)
  | (<dom_condition>)
  | NOT <dom_condition>
  | <dom_condition> OR <dom_condition>
  | <dom_condition> AND <dom_condition>


<operator> ::=
    <> | != | ^= | ~= | = | < | > | <= | >=
  | !< | ^< | ~< | !> | ^> | ~>

<val> ::=
    VALUE
  | <literal>
  | <context_var>
  | <expression>
  | NULL
  | NEXT VALUE FOR genname
  | GEN_ID(genname, <val>)
  | CAST(<val> AS <cast_type>)
  | (<select_one>)
  | func(<val> [, <val> ...])


<cast_type> ::=
   <datatype>
  | [TYPE OF] domain
  | TYPE OF COLUMN rel.col
Table 1. Paramètres de l’opérateur ALTER DOMAIN
Paramètre Description

domain_name

Nom de domaine.

new_name

Nouveau nom de domaine.Peut contenir jusqu’à 63 caractères.

datatype

Type de données SQL.

literal

Litéral.

context_var

Toute variable contextuelle dont le type est compatible avec le type de données du domaine.

dom_condition

Condition du domaine.

collation

Ordre de tri.

select_one

L’opérateur SELECT sélectionne une colonne et renvoie une seule ligne.

select_list

L’opérateur SELECT sélectionne une colonne et retourne zéro ou plusieurs lignes.

select_expr

L’opérateur SELECT sélectionne plusieurs colonnes et renvoie zéro ou plusieurs lignes.

expression

Expression.

genname

Le nom de la séquence (générateur).

func

Fonction scalaire.

L’instruction ALTER DOMAIN modifie les caractéristiques actuelles d’un domaine, y compris son nom.Un nombre quelconque de changements de domaine peut être effectué dans une seule instruction ALTER DOMAIN.

TO name

La suggestion TO vous permet de renommer un domaine.Un nom de domaine peut être modifié s’il n’y a pas de dépendances sur ce domaine, c’est-à-direles colonnes des tables, les variables locales et les arguments des procédures faisant référence à ce domaine.

SET DEFAULT

La phrase SET DEFAULT permet de définir une nouvelle valeur par défaut.Si le domaine contenait déjà une valeur par défaut, la définition d’une nouvelle valeur par défaut ne nécessite pas la suppression préalable de l’ancienne.

DROP DEFAULT

La clause DROP DEFAULT supprime la valeur par défaut précédemment définie pour le domaine.Dans ce cas, la valeur par défaut devient NULL.

ADD CONSTRAINT CHECK

La phrase ADD [CONSTRAINT] CHECK ajoute une condition de restriction de domaine.Si le domaine contenait déjà une restriction CHECK, il faut d’abord la supprimer avec la phrase DROP CONSTRAINT.

TYPE

La suggestion TYPE vous permet de changer le type de domaine en un autre type valide.Tout type de modification qui entraînerait une perte de données n’est pas autorisé.Par exemple, le nombre de caractères du nouveau type de domaine ne peut pas être inférieur à celui qui a été défini précédemment.

Note

La modification du type n’est pas prise en charge pour le type BLOB et les tableaux.

SET NOT NULL

La phrase SET NOT NULL fixe une limite de NOT NULL pour le domaine.Dans ce cas, NULL n’est pas autorisé pour les variables et les colonnes basées sur le domaine.

Note

L’installation réussie d’une contrainte NOT NULL pour un domaine ne se produit qu’après une vérification complète des données des tables dont les colonnes sont basées sur le domaine.Cela peut prendre beaucoup de temps.

Warning

Si la description du domaine est modifiée, le code PSQL existant peut devenir invalide.Des informations sur la manière de détecter cela peuvent être trouvées dans Field RDB$VALID_BLR.

DROP NOT NULL

La phrase DROP NOT NULL supprime la restriction NOT NULL pour le domaine.

Ce qui ne peut pas changer ALTER DOMAIN

  • Si un domaine a été déclaré comme un tableau, alors ni son type ni sa dimension ne peuvent être modifiés. Il n’existe pas non plus de moyen de transformer un autre type en un type de tableau.

  • Il n’y a aucun moyen de modifier le tri par défaut. Dans ce cas, vous devez supprimer le domaine et le recréer avec les nouveaux attributs.