CREATE TABLE
Pour créer une nouvelle table.
DSQL, ESQL
CREATE [GLOBAL TEMPORARY] TABLE tablename [EXTERNAL [FILE] 'filespec'] (<col_def> [, <col_def> | <tconstraint> ...]) [ON COMMIT {DELETE | PRESERVE} ROWS] [SQL SECURITY {DEFINER | INVOKER}] [{ENABLE | DISABLE} PUBLICATION] <col_def> ::= <regular_col_def> | <computed_col_def> | <identity_col_def> <regular_col_def> ::= colname { <datatype> | domain_name } [DEFAULT {<literal> | NULL | <context_var>}] [NOT NULL] [<col_constraint>] [COLLATE collation_name] <computed_col_def> ::= colname [{ <datatype> | domain_name }] {COMPUTED [BY] | GENERATED ALWAYS AS} (<expression>) <identity_col_def> ::= colname [<datatype>] GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY [(<identity column options>)] [<col_constraint>] <identity column options> ::= <identity column option> [<identity column option>] <identity column option> ::= START WITH startvalue | 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 <cast_type>) | (<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, peut contenir jusqu’à 63 caractères. |
filespec |
Spécification du fichier (uniquement pour les tables externes). |
colname |
Nom de la colonne de la table, peut avoir jusqu’à 63 caractères. |
datatype |
Type de données SQL. |
domain_name |
Nom de domaine. |
startvalue |
La valeur initiale de la colonne d’identité. |
identityvalue |
Incrément de la colonne d’identité. Ne peut être égal à 0. |
col_constraint |
Restriction de la colonne. |
tconstraint |
Limitation du tableau. |
constr_name |
Nom de la restriction, 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 |
Literal |
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 |
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 CREATE TABLE
crée une nouvelle table.Le nom de la table doit être unique parmi les noms de toutes les tables, vues (VIEW) et procédures de base de données stockées.
Une table peut contenir au moins une colonne et un nombre arbitraire de contraintes de table.
Le nom de la colonne doit être unique pour la table en cours de création.Il faut soit spécifier le type de données ou le nom du domaine dont les caractéristiques seront copiées pour la colonne, soit spécifier que la colonne est calculable.
Tout type de données SQL peut être utilisé comme type de colonne.