在PostgreSQL中删除触发器的正确​​方法

时间:2016-11-16 11:16:37

标签: postgresql

简短的问题......

必须使用DROP TRIGGER操作: https://www.postgresql.org/docs/9.1/static/sql-droptrigger.html

或者只是删除pg_trigger表中的条目就足够了吗?

3 个答案:

答案 0 :(得分:2)

正确的方法是唯一的方法。即使从drop trigger删除似乎工作正常,也请使用pg_trigger。事实上它没有。手动删除pg_trigger中的条目后,您可以得到错误(不是立即,但是当您最后的预期时),如下所示:

  

错误:无法找到触发器123456的元组

这是因为Postgres还在pg_depend中的表格中存储了有关触发器的信息。作为示例性结果,您将无法删除该表。

答案 1 :(得分:1)

你肯定应该使用DROP TRIGGER语句。 这是标准的便携式。

答案 2 :(得分:1)

请勿从pg_trigger中删除。此外,在删除触发器之前,必须明确删除触发器所基于的FUNCTION。