

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# `CREATE TABLE`
<a name="create-table-syntax-support"></a>

`CREATE TABLE` définit une nouvelle table.

```
CREATE TABLE [ IF NOT EXISTS ] table_name ( [
  { column_name data_type [ STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN | DEFAULT } ] [ column_constraint [ ... ] ]
    | table_constraint
    | LIKE source_table [ like_option ... ] }
    [, ... ]
] )

where column_constraint is:

[ CONSTRAINT constraint_name ]
{ NOT NULL |
  NULL |
  CHECK ( expression )|
  DEFAULT default_expr |
  GENERATED ALWAYS AS ( generation_expr ) STORED |
  GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( sequence_options ) |
  UNIQUE [ NULLS [ NOT ] DISTINCT ] index_parameters |
  PRIMARY KEY index_parameters |

and table_constraint is:

[ CONSTRAINT constraint_name ]
{ CHECK ( expression ) |
  UNIQUE [ NULLS [ NOT ] DISTINCT ] ( column_name [, ... ] ) index_parameters |
  PRIMARY KEY ( column_name [, ... ] ) index_parameters |

and like_option is:

{ INCLUDING | EXCLUDING } { COMMENTS | CONSTRAINTS | DEFAULTS | GENERATED | IDENTITY | INDEXES | STATISTICS | ALL }

index_parameters in UNIQUE, and PRIMARY KEY constraints are:
[ INCLUDE ( column_name [, ... ] ) ]
```

## Colonnes d'identité
<a name="create-table-identity-columns"></a>

**Note**  
Lorsque vous utilisez des colonnes d'identité, la valeur du cache doit être soigneusement prise en compte. Pour plus d'informations, consultez la légende Important sur la [`CREATE SEQUENCE`](create-sequence-syntax-support.md) page.  
Pour obtenir des conseils sur la meilleure façon d'utiliser les colonnes d'identité en fonction des modèles de charge de travail, voir[Utilisation de séquences et de colonnes d'identité](sequences-identity-columns-working-with.md).

La `GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY ( {{sequence_options}} )` clause crée la colonne en tant que *colonne d'identité*. Une séquence implicite y sera attachée et dans les lignes nouvellement insérées, la colonne contiendra automatiquement les valeurs de la séquence qui lui est attribuée. Une telle colonne l'est implicitement`NOT NULL`.

Les clauses `ALWAYS` et `BY DEFAULT` déterminent comment les valeurs spécifiées explicitement par l'utilisateur sont gérées dans `UPDATE` les commandes `INSERT` et.

Dans une `INSERT` commande, si elle `ALWAYS` est sélectionnée, une valeur spécifiée par l'utilisateur n'est acceptée que si l'`INSERT`instruction le précise`OVERRIDING SYSTEM VALUE`. Si cette option `BY DEFAULT` est sélectionnée, la valeur spécifiée par l'utilisateur est prioritaire.

Dans une `UPDATE` commande, si elle `ALWAYS` est sélectionnée, toute mise à jour de la colonne vers une valeur autre que `DEFAULT` sera rejetée. Si cette option `BY DEFAULT` est sélectionnée, la colonne peut être mise à jour normalement. (Il n'y a aucune `OVERRIDING` clause pour la `UPDATE` commande.)

La {{sequence\_options}} clause peut être utilisée pour remplacer les paramètres de la séquence. Les options disponibles incluent celles indiquées pour[`CREATE SEQUENCE`](create-sequence-syntax-support.md), plus`SEQUENCE NAME {{name}}`. Sans`SEQUENCE NAME`, le système choisit un nom inutilisé pour la séquence.

## Mode de stockage
<a name="create-table-storage"></a>

La `STORAGE` clause facultative définit le mode de stockage de la colonne. Utilisez ces options pour contrôler le comportement de compression pour les types de données de longueur variable tels que. `JSON`

Amazon Aurora DSQL compresse certains types de données lorsqu'ils dépassent une certaine taille. Pour désactiver ce comportement, utilisez les `EXTERNAL` options `PLAIN` ou.

**`PLAIN`**  
Aurora DSQL stocke les données en ligne sans compression. Il s'agit de la seule option pour les types de données de longueur fixe tels que. `integer` Utilisez cette option pour désactiver la compression sur certains types de longueur variable.

**`MAIN` \| `EXTENDED` \| `DEFAULT`**  
`MAIN`et `EXTENDED` autorisez la compression facultative de la colonne si le type de données sous-jacent prend en charge la compression. `DEFAULT`définit le mode de stockage sur le mode par défaut pour le type de données de la colonne.

**`EXTERNAL`**  
Aurora DSQL ne prend actuellement pas en charge les tables TOAST, mais `EXTERNAL` désactive la compression sur les types de données qui prennent en charge la compression.