capypad
0 Tage Serie
sql / expert
Snippet

Integritätsmanagement über Constraint-Aufschiebbarkeit

Aufschiebbare Constraints ermöglichen es, Integritätsprüfungen bis zum Commit der Transaktion zu verschieben. Dies ist essenziell für zirkuläre Referenzen oder komplexe Migrationen, bei denen die Konsistenz während des Prozesses vorübergehend verletzt wird.

snippet.sql
sql
1
2
3
4
SET CONSTRAINTS ALL DEFERRED;
UPDATE master_table SET id = 500 WHERE id = 100;
UPDATE child_table SET master_id = 500 WHERE master_id = 100;
COMMIT;
Erklärung
1
SET CONSTRAINTS ALL DEFERRED
Befiehlt der Engine, bis zum Ende der Transaktion zu warten, um Fremdschlüssel und Unique-Constraints zu validieren.
2
COMMIT
Der Zeitpunkt, an dem alle aufgeschobenen Constraints schließlich gleichzeitig validiert werden.