

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

`SET CONSTRAINTS`legt das Verhalten bei der Überprüfung von Fremdschlüsseleinschränkungen innerhalb der aktuellen Transaktion fest.

## Unterstützte Syntax
<a name="set-constraints-supported-syntax"></a>

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

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

`SET CONSTRAINTS`legt das Verhalten der Einschränkungsprüfung innerhalb der aktuellen Transaktion fest. `IMMEDIATE`Einschränkungen werden am Ende jeder Anweisung überprüft. `DEFERRED`Einschränkungen werden erst überprüft, wenn die Transaktion festgeschrieben wird. Jede Einschränkung hat ihren eigenen `IMMEDIATE` `DEFERRED` ODER-Modus.

Wenn Sie eine Beschränkung erstellen, weisen Sie ihr eines von drei Merkmalen zu: `DEFERRABLE INITIALLY DEFERRED``DEFERRABLE INITIALLY IMMEDIATE`, oder`NOT DEFERRABLE`. Die dritte Klasse ist immer`IMMEDIATE`, und der `SET CONSTRAINTS` Befehl ändert sie nicht. Die ersten beiden Klassen starten jede Transaktion im angegebenen Modus, ihr Verhalten kann jedoch innerhalb einer Transaktion geändert werden`SET CONSTRAINTS`.

`SET CONSTRAINTS`mit einer Liste von Constraint-Namen ändert sich der Modus genau dieser Constraints. Alle benannten Einschränkungen müssen aufschiebbar sein. `SET CONSTRAINTS ALL`ändert den Modus aller aufschiebbaren Beschränkungen.

Wenn der Modus einer Beschränkung von `DEFERRED` auf `SET CONSTRAINTS` geändert wird`IMMEDIATE`, wird der neue Modus rückwirkend wirksam. Aurora DSQL überprüft sofort alle ausstehenden Datenänderungen, die andernfalls bis zum Ende der Transaktion zurückgestellt worden wären. Wenn eine solche Einschränkung verletzt wird, schlägt der `SET CONSTRAINTS` Befehl fehl und der Einschränkungsmodus wird nicht geändert.

Eine Beschreibung der Aufschiebbarkeitsoptionen (`DEFERRABLE`,, `NOT DEFERRABLE``INITIALLY DEFERRED`,`INITIALLY IMMEDIATE`) finden Sie [Aufschiebbarkeit](create-table-syntax-support.md#create-table-fk-deferrability) auf der [`CREATE TABLE`](create-table-syntax-support.md) Seite.

**Nur Fremdschlüsseleinschränkungen**  
`SET CONSTRAINTS`Gilt in Aurora DSQL nur für Fremdschlüsseleinschränkungen. Primärschlüssel`NOT NULL`, Eindeutigkeit und `CHECK` Einschränkungen werden immer sofort überprüft, wenn eine Zeile eingefügt oder geändert wird, auch wenn Sie sie ausführen`SET CONSTRAINTS ALL DEFERRED`.

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

Aurora DSQL ändert das Verhalten von Einschränkungen nur innerhalb der aktuellen Transaktion. Um es zu verwenden`SET CONSTRAINTS`, führen Sie es in einem expliziten Transaktionsblock aus.

## Kompatibilität
<a name="set-constraints-compatibility"></a>

Dieser Befehl entspricht dem im SQL-Standard definierten Verhalten, mit der Einschränkung, dass Aurora DSQL den Aufschub nur für Fremdschlüsseleinschränkungen unterstützt.