如何在PostgreSQL 9.1 DB中删除多个触发器

AnA*_*ice 9 sql postgresql postgresql-9.1

我正在尝试删除多个触发器,但收到SQL错误:

PG::Error: ERROR:  syntax error at or near ";"
LINE 1:     DROP TRIGGER rr_admin_reports;
Run Code Online (Sandbox Code Playgroud)

这是我在rails中执行的sql:

sql = <<-SQL
  DROP TRIGGER rr_admin_reports;
  DROP TRIGGER rr_apps;
  DROP TRIGGER rr_attachments;
SQL
Run Code Online (Sandbox Code Playgroud)

有没有办法轻松删除一长串触发器?谢谢

Flo*_*man 13

DROP TRIGGER rr_admin_reports ON yourTable;
Run Code Online (Sandbox Code Playgroud)

从PostgreSQL文档引用:

PostgreSQL中的DROP TRIGGER语句与SQL标准不兼容.在SQL标准中,触发器名称不是表的本地,因此该命令只是DROP TRIGGER名称.

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

  • 是使用:DROP TRIGGER IF EXISTS rr_admin_reports on yourTable; :) (4认同)
  • 有没有办法说DROP TRIGGER如果存在? (3认同)