Kurze Frage zu löschen ...Richtiger Weg Trigger in PostgreSQL
Muss man den DROP TRIGGER Betrieb verwenden: https://www.postgresql.org/docs/9.1/static/sql-droptrigger.html
Oder einfach wäre Einträge aus der pg_trigger Tabelle genügen zu löschen?
Kurze Frage zu löschen ...Richtiger Weg Trigger in PostgreSQL
Muss man den DROP TRIGGER Betrieb verwenden: https://www.postgresql.org/docs/9.1/static/sql-droptrigger.html
Oder einfach wäre Einträge aus der pg_trigger Tabelle genügen zu löschen?
Der richtige Weg ist der einzige. Verwenden Sie drop trigger
, auch wenn das Löschen von pg_trigger
scheint gut zu funktionieren. Tatsächlich tut es das nicht. Nachdem Sie manuell einen Eintrag aus pg_trigger
löschen können Sie den Fehler (nicht sofort, aber wenn Sie erwarten, dass es reicht) wie folgt aus:
ERROR: could not find tuple for trigger 123456
Dies liegt daran, Postgres Informationen über Trigger für eine Tabelle auch in pg_depend
speichert. Als ein exemplarisches Ergebnis können Sie den Tisch nicht fallen lassen.
Auf jeden Fall sollten Sie die Anweisung dafür verwenden. Dies ist Standard und tragbar.
Nicht aus pg_trigger löschen. Außerdem müssen Sie die FUNCTION, in der der Trigger basiert, explizit löschen, bevor Sie den Trigger löschen.
Nein, es gibt keinen solchen Zwang. Natürlich sollten Sie die Triggerfunktion löschen, wenn sie nicht verwendet wird. – klin
Wenn Sie Standard-SQL verwenden können, verwenden Sie es. Vielleicht wirst du morgen mit anderen RDBMS arbeiten. –
** Nie ** jemals mit den Systemtabellen herumspielen. Also, nein: Lösche nicht von 'pg_trigger' –