ALTER TABLE
Modifie la structure de la table.
DSQL, ESQL.
ALTER TABLE tablename <operation> [, <operation>]; <operation> ::= ADD <col_def> | ADD <tconstraint> | DROP colname | DROP CONSTRAINT constr_name | DROP SQL SECURITY | ALTER [COLUMN] colname <col_mod> | ALTER SQL SECURITY {DEFINER | INVOKER} | {ENABLE | DISABLE} PUBLICATION <col_def> ::= <regular_col_def> | <computed_col_def> | <identity_col_def> <regular_col_def> ::= colname { <datatype> | domainname } [DEFAULT {literal | NULL | <context_var>}] [NOT NULL] [<col_constraint>] [COLLATE collation_name] <computed_col_def> ::= colname [<datatype>] {COMPUTED [BY] | GENERATED ALWAYS AS} (<expression>) <identity_col_def> ::= colname [<datatype>] {ALWAYS | GENERATED BY} DEFAULT AS IDENTITY [(START WITH startvalue)] [<col_constraint>] <col_mod> ::= TO newname | POSITION newpos | <regular_col_mod> | <computed_col_mod> | <identity_col_mod> <regular_col_mod> ::= | TYPE { <datatype> | domain_name } | SET DEFAULT {literal | NULL | <context_var>} | DROP DEFAULT | SET NOT NULL | DROP NOT NULL <computed_col_mod> ::= [TYPE <datatype>] {GENERATED ALWAYS AS | COMPUTED [BY]} (<expression>) <identity_col_mod> ::= <alter identity column option> ... | SET GENERATED { ALWAYS | BY DEFAULT } [<alter identity column option> ...] | DROP INDENITY <alter identity column option> ::= RESTART [ WITH startvalue ] | SET INCREMENT [BY] incrementvalue <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. <col_constraint> ::= [CONSTRAINT constr_name] { UNIQUE [<using_index>] | PRIMARY KEY [<using_index>] | REFERENCES other_table [(other_col)] [ON DELETE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}] [ON UPDATE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}] [<using_index>] | CHECK (<check_condition>) } <tconstraint> ::= [CONSTRAINT constr_name] { UNIQUE (<col_list>) [<using_index>] | PRIMARY KEY (<col_list>) [<using_index>] | FOREIGN KEY (<col_list>) REFERENCES other_table [(<col_list>)] [ON DELETE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}] [ON UPDATE { NO ACTION | CASCADE | SET DEFAULT | SET NULL}] [<using_index>] | CHECK (<check_condition>) } <col_list> ::= colname [, colname ...] <using_index> ::= USING [ASC[ENDING] | DESC[ENDING]] INDEX indexname <check_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>) | (<check_condition>) | NOT <check_condition> | <check_condition> OR <check_condition> | <check_condition> AND <check_condition> <operator> ::= <> | != | ^= | ~= | = | < | > | <= | >= | !< | ^< | ~< | !> | ^> | ~> <val> ::= colname [[<array_idx> [, <array_idx> ...]]] | literal | <context_var> | <expression> | NULL | NEXT VALUE FOR genname | GEN_ID(genname, <val>) | CAST(<val> AS <datatype>) | (<select_one>) | func(<val> [, <val> ...]) <cast_type> ::= <datatype> | [TYPE OF] domain_name | TYPE OF COLUMN rel.colname
Paramètre | Description |
---|---|
tablename |
Nom de la table. |
operation |
Une des opérations autorisées pour modifier la structure d’une table. |
colname |
Nom de la colonne de la table, peut contenir jusqu’à 63 caractères.Doit être unique au sein de la table. |
newname |
Nouveau nom de colonne de la table, peut avoir jusqu’à 63 caractères.Doit être unique au sein de la table. |
gencolname |
Le nom de la colonne de la table à calculer. |
idencolname |
Nom de la colonne d’identité. |
newpos |
Nouvelle position de la colonne dans le tableau.Un nombre entier compris entre 1 et le nombre de colonnes du tableau. |
datatype |
Type de données SQL. |
domain_name |
Nom de domaine. |
startvalue |
La valeur initiale de la colonne d’identité. |
incrementvalue |
La valeur incrémentale pour la colonne d’identité.Doit être différent de 0. |
col_constraint |
Restriction de la colonne. |
tconstraint |
Contrainte de la table. |
constr_name |
Nom de la contrainte, peut contenir jusqu’à 63 caractères. |
other_table |
Le nom de la table à laquelle la clé étrangère fait référence. |
other_col |
La colonne de la table à laquelle la clé étrangère fait référence. |
using_index |
Vous permet de définir le nom de l’index généré automatiquement pour la contrainte, et éventuellement de définir si l’index sera en ordre croissant (par défaut) ou décroissant. |
literal |
Litéral. |
context_var |
Toute variable contextuelle dont le type est compatible avec le type de données de la colonne. |
check_condition |
Condition de contrôle des contraintes.Exécuté si évalué comme |
collation_name |
Le nom de l’ordre de tri.Doit être spécifié si vous voulez que l’ordre de tri d’une colonne soit différent de l’ordre de tri par défaut pour le jeu de caractères de cette colonne. |
select_one |
L’opérateur |
select_list |
L’opérateur |
select_expr |
L’opérateur |
experssion |
Expression. |
genname |
Le nom de la séquence (générateur). |
func |
Fonction scalaire. |
L’instruction ALTER TABLE
modifie la structure d’une table existante.Une seule instruction ALTER TABLE
permet de multiples opérations d’ajout/suppression de colonnes et de contraintes, ainsi que des modifications de colonnes.La liste des opérations effectuées lors de la modification d’une table est séparée par une virgule.