

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.

# `SET CONSTRAINTS`
<a name="set-constraints-syntax-support"></a>

`SET CONSTRAINTS`définit le comportement de la vérification des contraintes de clé étrangère dans la transaction en cours.

## Syntaxe prise en charge
<a name="set-constraints-supported-syntax"></a>

```
SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE }
```

## Description
<a name="set-constraints-description"></a>

`SET CONSTRAINTS`définit le comportement de la vérification des contraintes dans la transaction en cours. `IMMEDIATE`les contraintes sont vérifiées à la fin de chaque instruction. `DEFERRED`les contraintes ne sont pas vérifiées tant que la transaction n'est pas validée. Chaque contrainte possède son propre `DEFERRED` mode `IMMEDIATE` ou.

Lorsque vous créez une contrainte, vous lui attribuez l'une des trois caractéristiques suivantes : `DEFERRABLE INITIALLY DEFERRED``DEFERRABLE INITIALLY IMMEDIATE`, ou`NOT DEFERRABLE`. La troisième classe existe toujours `IMMEDIATE` et la `SET CONSTRAINTS` commande ne la modifie pas. Les deux premières classes démarrent chaque transaction dans le mode indiqué, mais leur comportement peut être modifié au sein d'une transaction par`SET CONSTRAINTS`.

`SET CONSTRAINTS`avec une liste de noms de contraintes, change le mode de ces contraintes uniquement. Toutes les contraintes nommées doivent être différées. `SET CONSTRAINTS ALL`modifie le mode de toutes les contraintes différées.

Lorsque le mode d'une contrainte `SET CONSTRAINTS` passe de `DEFERRED` à`IMMEDIATE`, le nouveau mode prend effet rétroactivement. Aurora DSQL vérifie immédiatement toutes les modifications de données en suspens qui auraient autrement été reportées à la fin de la transaction. Si l'une de ces contraintes n'est pas respectée, la `SET CONSTRAINTS` commande échoue et ne modifie pas le mode de contrainte.

Pour une description des options de différabilité (`DEFERRABLE`,, `NOT DEFERRABLE``INITIALLY DEFERRED`,`INITIALLY IMMEDIATE`), consultez la [Déférabilité](create-table-syntax-support.md#create-table-fk-deferrability) [`CREATE TABLE`](create-table-syntax-support.md) page.

**Contraintes de clé étrangère uniquement**  
Dans Aurora DSQL, `SET CONSTRAINTS` s'applique uniquement aux contraintes de clé étrangère. La clé primaire, l'`NOT NULL`unicité et les `CHECK` contraintes sont toujours vérifiées immédiatement lorsqu'une ligne est insérée ou modifiée, même lorsque vous exécutez`SET CONSTRAINTS ALL DEFERRED`.

## Remarques
<a name="set-constraints-notes"></a>

Aurora DSQL modifie le comportement des contraintes uniquement dans le cadre de la transaction en cours. Pour l'utiliser`SET CONSTRAINTS`, exécutez-le dans un bloc de transaction explicite.

## Compatibilité
<a name="set-constraints-compatibility"></a>

Cette commande est conforme au comportement défini dans la norme SQL, avec la restriction selon laquelle Aurora DSQL ne prend en charge le report que pour les contraintes de clé étrangère.