capypad
0 Tage Serie
sql / expert
Snippet

Globale Konsistenz mit Assertions auf Schema-Ebene

Assertions sind mächtige Constraints auf Schema-Ebene, die Logik über mehrere Tabellen hinweg validieren können. Im Gegensatz zu Triggern sind sie deklarativ und stellen sicher, dass die Datenbank niemals einen ungültigen Zustand einnimmt.

snippet.sql
sql
1
2
3
4
5
CREATE ASSERTION balance_safety
CHECK (NOT EXISTS (
SELECT 1 FROM accounts
WHERE type = 'SAVINGS' AND balance < 0
));
Erklärung
1
CREATE ASSERTION
Definiert eine globale Bedingung, die unabhängig vom Lebenszyklus einer einzelnen Tabelle ist.
2
CHECK (NOT EXISTS (...))
Die Logik, die für jeden Transaktions-Commit immer als wahr ausgewertet werden muss.