2009-07-09 4 views

Antwort

0

Es kann nicht behoben werden.

Was ist, wenn Sie eine Kaskade bis eine Tabelle als NULL angeben, eine andere ist DELETE. Wie kann das gelöst werden?

Ich habe den gleichen Fehler getroffen, aber ich entschied mich, Trigger hauptsächlich zu verwenden, damit ich die Löschvorgänge kontrolliere.

+1

Die Semantik, die ich will, sind sehr einfach: Ich habe eine N: M-Selbstreferenz in einer separaten Tabelle. Diese Tabelle hat zwei FKs zur ursprünglichen Tabelle und wenn ich einen der Einträge in der "Haupt" -Tabelle lösche, brauche ich die Verbindungen zu anderen Elementen nicht mehr. Selbst im gemischten Fall von NULL und DELETE wäre eine direkte Implementierung möglich. Postgres 8.1 zum Beispiel hat absolut kein Problem mit diesem Anwendungsfall und TOTALLY funktioniert wie erwartet. –

+0

Was macht Postgres? – gbn

+0

Gegeben eine Verbindungstabelle (X, Y), wo X ON DELETE CASCADE angibt und Y ON DELETE SET NULL angibt und die Tupel (3,2) und (2,3) enthält. Nach dem Löschen des Tupels mit ID = 3 in der referenzierten Tabelle enthält die Verbindungstabelle (2, NULL). Was soll es sonst noch machen ?! –

Verwandte Themen