View a markdown version of this page

SET CONSTRAINTS - Amazon Aurora DSQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

SET CONSTRAINTS

SET CONSTRAINTSimposta il comportamento del controllo dei vincoli di chiave esterna all'interno della transazione corrente.

Sintassi supportata

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

Description

SET CONSTRAINTSimposta il comportamento del controllo dei vincoli all'interno della transazione corrente. IMMEDIATEi vincoli vengono controllati alla fine di ogni istruzione. DEFERREDi vincoli vengono controllati solo dopo il commit della transazione. Ogni vincolo ha una propria modalità. IMMEDIATE DEFERRED

Quando si crea un vincolo, gli si assegna una delle tre caratteristiche seguenti:DEFERRABLE INITIALLY DEFERRED,DEFERRABLE INITIALLY IMMEDIATE, o. NOT DEFERRABLE La terza classe è sempre IMMEDIATE e il SET CONSTRAINTS comando non la modifica. Le prime due classi avviano ogni transazione nella modalità indicata, ma il loro comportamento può essere modificato all'interno di una transazione daSET CONSTRAINTS.

SET CONSTRAINTScon un elenco di nomi di vincoli cambia la modalità solo di tali vincoli. Tutti i vincoli denominati devono essere differibili. SET CONSTRAINTS ALLmodifica la modalità di tutti i vincoli differibili.

Quando SET CONSTRAINTS cambia la modalità di un vincolo da DEFERRED aIMMEDIATE, la nuova modalità ha effetto retroattivo. Aurora DSQL verifica immediatamente eventuali modifiche ai dati in sospeso che altrimenti sarebbero state rimandate alla fine della transazione. Se uno di questi vincoli viene violato, il SET CONSTRAINTS comando ha esito negativo e non modifica la modalità di vincolo.

Per una descrizione delle opzioni di differibilità (DEFERRABLE,,,INITIALLY IMMEDIATE) NOT DEFERRABLEINITIALLY DEFERRED, vedi nella pagina. Differibilità CREATE TABLE

Solo vincoli di chiave esterna

In Aurora DSQL, SET CONSTRAINTS si applica solo ai vincoli di chiave esterna. La chiave primaria, l'univoca e CHECK i vincoli vengono sempre controllati immediatamente quando una riga viene inserita o modificata, anche durante l'esecuzione. NOT NULL SET CONSTRAINTS ALL DEFERRED

Note

Aurora DSQL modifica il comportamento dei vincoli solo all'interno della transazione corrente. Per utilizzarloSET CONSTRAINTS, eseguilo all'interno di un blocco di transazione esplicito.

Compatibilità

Questo comando è conforme al comportamento definito nello standard SQL, con la restrizione che Aurora DSQL supporta il differimento solo per i vincoli di chiave esterna.