2013-01-04 10 views
5

Ich versuche, fallen mehrere Trigger zu entfernen, aber einen SQL-Fehler bekommen:Wie mehrere Trigger in einer PostgreSQL 9.1 DB

PG::Error: ERROR: syntax error at or near ";" 
LINE 1:  DROP TRIGGER rr_admin_reports; 

Hier ist die SQL-I in Schienen Ausführung bin:

sql = <<-SQL 
    DROP TRIGGER rr_admin_reports; 
    DROP TRIGGER rr_apps; 
    DROP TRIGGER rr_attachments; 
SQL 

Gibt es eine Möglichkeit, eine lange Liste von Triggern einfach zu löschen? Dank

Antwort

8
DROP TRIGGER rr_admin_reports ON yourTable; 

Zitat von PostgreSQL-Dokumentation:

The DROP TRIGGER statement in PostgreSQL is incompatible with the SQL standard. In the SQL standard, trigger names are not local to tables, so the command is simply DROP TRIGGER name.

http://www.postgresql.org/docs/7.4/static/sql-droptrigger.html

+3

Gibt es eine Möglichkeit DROP TRIGGER IF EXISTS zu sagen? – AnApprentice

+2

Ja Verwendung: DROP TRIGGER IF EXISTS rr_admin_reports ON yourTable; :) –

Verwandte Themen