【问题标题】:How to drop multiple triggers in a PostgreSQL 9.1 DB如何在 PostgreSQL 9.1 DB 中删除多个触发器
【发布时间】:2013-01-04 20:03:38
【问题描述】:

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

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

这是我在 rails 中执行的 sql:

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

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

【问题讨论】:

    标签: sql postgresql postgresql-9.1


    【解决方案1】:
    DROP TRIGGER rr_admin_reports ON yourTable;
    

    引用自 PostgreSQL 文档:

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

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

    【讨论】:

    • 有没有办法说 DROP TRIGGER IF EXISTS?
    • 是的,使用:DROP TRIGGER IF EXISTS rr_admin_reports ON yourTable; :)
    猜你喜欢
    • 2014-05-09
    • 2011-03-06
    • 1970-01-01
    • 2012-04-11
    • 2016-11-11
    • 2014-08-18
    • 2021-07-29
    • 1970-01-01
    相关资源
    最近更新 更多