PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Oracle] Deferrable Constraints


Gast
2007-01-07, 23:41:20
http://img389.imageshack.us/img389/807/namenlosgv0.jpg

Warum kommt dort ein Deferrable Constraint hin?

Kann das jemand erklären? Gerne auch zu einem anderm Beispiel?

nefu
2007-01-08, 09:21:16
Deferrable Constraints hängen immer irgendwie mit der Verarbeitungs- / Anwendungslogik zusammen.
Wie hier
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:671629032835
ganz gut erklärt wird ist es damit möglich, temporär einen 'inkonsistenten' Zustand in den betroffenen Tabellen zu erzeugen. Erst wenn die Transaktion ein Commit absetzt wird überprüft, ob Constraints verletzt werden.
Das hängt sicherlich mit dem (anfänglichen ?) Laden der Daten zusammen.
Versuch mal ein paar Szenarien durchzuspielen (durch die Constraints gibt es ja Abhängigkeiten, in welcher Reihenfolge die Tabellen gefüllt werden müssen).
Wenn ich Zeit dazu finde, werde ich mir das mal genauer ansehen.
Auf der "Ask Tom" Site gibt es noch einiges zu dem Thema zu finden.

Gruß!

nefu (@work)

Gast
2007-01-08, 10:54:25
Danke für die Info!

Gast
2007-01-10, 23:58:41
DEFERRABLE (verzögern)
Foreign Key Bedingungen werden sofort beim update überprüft. Ist etwas deferrable wird es erst nach commit angelegt. Nach commit wird also überprüft, ob die zweite foreign key – Bedingung erfüllt ist. Foreign key wird erst nach commit überprüft.