PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Die Zeile wird nicht gelöscht, weil der Kaskadenauslöser diese Zeile aktualisiert

Ich habe ein ähnliches Problem, aber mit nur einer Tabelle. Das Löschen von Zeilen aus der angegebenen Tabelle löst einen Trigger aus (vor dem Löschen), der nach verwandten Zeilen in derselben Tabelle sucht (durch eine bestimmte Bedingung), und wenn sie gefunden werden, werden diese Zeilen aktualisiert. Wenn nun eine aktualisierte Zeile mit demselben Löschbefehl gelöscht werden soll, wird sie nicht gelöscht.

Wenn Sie also einen Trigger erstellen, der immer dieselbe Zeile aktualisiert, die gerade gelöscht wird, können Sie von nun an nichts mehr löschen.

Ich weiß nicht, ob das Absicht ist oder nicht. In gewisser Weise erscheint es logisch, das ist sicher. Wenn Sie einen Datensatz aktualisieren, handelt es sich nicht um denselben Datensatz, der zum Löschen vorgesehen war.

(Entschuldigung für schlechtes Deutsch)