ALTER TABLE : les valeurs par défaut incompatibles ne sont plus autorisées dans les nouvelles colonnes¶
Attention
Ce changement de comportement est présent dans le bundle 2023_08.
Pour connaître le statut actuel du bundle, reportez-vous à Historique du bundle.
La commande ALTERTABLE se comporte comme suit :
- Avant la modification:
Les commandes ALTER TABLE ADD COLUMN DEFAULT permettaient d’ajouter une colonne avec une valeur par défaut incompatible avec le type de données de la colonne. La valeur par défaut qui en résulte est inutilisable. Par exemple, bien que la valeur par défaut de 1 soit incompatible avec le type de données TIMESTAMP_TZ, la commande suivante aboutira :
ALTER TABLE t ADD COLUMN x TIMESTAMP_TZ DEFAULT 1;
- Après la modification:
les commandes ALTER TABLE ADD COLUMN DEFAULT ne permettent plus d’ajouter une colonne dont la valeur par défaut est incompatible avec le type de données de la colonne. Une tentative de définition d’une valeur par défaut incompatible pour une colonne se solde par une erreur. Par exemple :
SQL compilation error: Expression type does not match column data type, expecting DATE but got NUMBER(1,0) for column Y
Les combinaisons spécifiques suivantes échouent :
Type de données de la colonne
Type de données de la valeur DEFAULT
VARCHAR
BOOLEAN
DATE
BOOLEAN
TIME
BOOLEAN
TIMESTAMP_LTZ
BOOLEAN
TIMESTAMP_NTZ
BOOLEAN
TIMESTAMP_TZ
BOOLEAN
FLOAT
BOOLEAN
NUMBER
BOOLEAN
BOOLEAN
VARCHAR
DATE
FLOAT
TIME
FLOAT
TIMESTAMP_LTZ
FLOAT
TIMESTAMP_NTZ
FLOAT
TIMESTAMP_TZ
FLOAT
DATE
NUMBER
TIME
NUMBER
TIMESTAMP_LTZ
NUMBER
TIMESTAMP_NTZ
NUMBER
TIMESTAMP_TZ
NUMBER
Réf : 1425