

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.

# `ALTER TABLE`
<a name="alter-table-syntax-support"></a>

`ALTER TABLE` modifie la définition d’une table.

```
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    action [, ... ]
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    RENAME [ COLUMN ] column_name TO new_column_name
ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    RENAME CONSTRAINT constraint_name TO new_constraint_name
ALTER TABLE [ IF EXISTS ] name
    RENAME TO new_name
ALTER TABLE [ IF EXISTS ] name
    SET SCHEMA new_schema

where action is one of:

    ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type
    ADD table_constraint_using_index
    ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...]
    ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ]
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

and table_constraint_using_index is:

    [ CONSTRAINT constraint_name ]
    UNIQUE USING INDEX index_name
```

## Actions relatives à la colonne d'identité
<a name="alter-table-identity-columns"></a>

**`SET GENERATED { ALWAYS | BY DEFAULT }` / `SET {{sequence_option}}` / `RESTART`**  
Ces formulaires permettent de déterminer si une colonne est une colonne d'identité ou de modifier l'attribut de génération d'une colonne d'identité existante. Consultez [`CREATE TABLE`](create-table-syntax-support.md) pour plus de détails. Par exemple`SET DEFAULT`, ces formulaires n'affectent que le comportement `INSERT` des `UPDATE` commandes suivantes ; ils ne modifient pas les lignes déjà présentes dans le tableau.  
{{sequence\_option}}Il s'agit d'une option prise en charge par [`ALTER SEQUENCE`](alter-sequence-syntax-support.md) tel que`INCREMENT BY`. Ces formulaires modifient la séquence qui sous-tend une colonne d'identité existante.

**`DROP IDENTITY [ IF EXISTS ]`**  
Ce formulaire supprime la propriété d'identité d'une colonne. Si elle `DROP IDENTITY IF EXISTS` est spécifiée et que la colonne n'est pas une colonne d'identité, aucune erreur n'est générée. Dans ce cas, un avis est émis à la place.

## Ajouter des actions de contrainte
<a name="alter-table-add-constraint"></a>

**`ADD {{table_constraint_using_index}}`**  
Ce formulaire ajoute une nouvelle `UNIQUE` contrainte à une table basée sur un index unique existant. Toutes les colonnes de l'index seront incluses dans la contrainte.  
L'index doit être dans un `VALID` état ; l'ajout d'une contrainte unique à l'aide d'un index alors que l'index est en cours de construction n'est pas pris en charge.  
Si un nom de contrainte est fourni, l'index sera renommé pour correspondre au nom de la contrainte. Dans le cas contraire, le nom de la contrainte sera le même que celui de l'index.  
Une fois cette commande exécutée, l'index est « possédé » par la contrainte, de la même manière que s'il avait été créé par une `CREATE UNIQUE INDEX ASYNC` commande normale. En particulier, la suppression de la contrainte fera également disparaître l'index.