16. Il linguaggio SQL Vers. 11.0 – Gennaio 2026
c) Vincoli di integrità referenziale e politiche di violazione: Possono essere realizzati attraverso la seguente tipologia di clausola:
- FOREIGN KEY(< Attributo1 >,..,< AttributoN >) REFERENCES < NomeTabella >(< Attr1 >,…, < AttrN >)
[ [ ON DELETE | ON UPDATE ] NO ACTION o RESTRICT | CASCADE | SET NULL | SET DEFAULT ],
Le colonne < Attributo1 >,..,< AttributoN > rappresentano la chiave esterna e corrispondono alle colonne < Attr1 >,..,< AttrN > che formano la chiave primaria della tabella < Nome Tabella >.
La parte opzionale successiva è relativa al tipo di politica da seguire, nella tabella che si sta creando, in caso di violazione del vincolo referenziale, durante una operazione di cancellazione o modifica della ennupla referenziata( ossia la ennupla della tabella < NomeTabella > avente la chiave primaria uguale alla chiave esterna)
Al momento della cancellazione( clausola ON DELETE) dell’ attributo / i chiave interessato / i da un vincolo referenziale, si può avere il seguente comportamento:
• con l’ opzione CASCADE, vengono cancellate le righe corrispondenti;
• con l’ opzione SET NULL, vengono impostate a NULL le righe corrispondenti;
• con l’ opzione SET DEFAULT, vengono impostate al valore di default le righe corrispondenti;
• con l’ opzione NO ACTION( analogo a RESTRICT), non viene permessa l’ esecuzione dell’ azione.
( n. b. se la clausola ON DELETE non è specificata, NO ACTION( o RESTRICT) è l’ impostazione di default).
Al momento della modifica( clausola ON UPDATE) dell’ attributo / i chiave interessato / i da un vincolo referenziale, si può avere il seguente comportamento:
• con l’ opzione CASCADE, vengono aggiornate le righe corrispondenti con il nuovo valore;
• con l’ opzione SET NULL, vengono impostate a NULL le righe corrispondenti;
• con l’ opzione SET DEFAULT, vengono impostate al valore di default le righe corrispondenti;
• con l’ opzione NO ACTION( analogo a RESTRICT), non viene permessa l’ esecuzione dell’ azione.
( n. b. se la clausola ON UPDATE non è specificata, NO ACTION( o RESTRICT) è l’ impostazione di default).
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 5