ALTER DOMAIN
Modifier les caractéristiques actuelles d’un domaine ou le renommer.
DSQL, ESQL.
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
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_list |
L’opérateur |
select_expr |
L’opérateur |
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 restrictionCHECK
, il faut d’abord la supprimer avec la phraseDROP 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.NoteLa 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.NoteL’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.
WarningSi 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 restrictionNOT NULL
pour le domaine.