如何在 PostgreSQL 9 中禁用触发器?
在 PostgreSQl 8.x 中,要禁用触发器,我会执行以下操作:
ALTER TABLE table DISABLE TRIGGER ALL;
当我在 PostgreSQL 9 中执行此操作时,我得到以下信息:
my_database=> ALTER TABLE my_table DISABLE TRIGGER ALL;
ERROR: permission denied: "RI_ConstraintTrigger_25366" is a system trigger
PS:此表是由运行此命令的用户创建的。
有这方面的线索吗?
In PostgreSQl 8.x to disable triggers I do something like:
ALTER TABLE table DISABLE TRIGGER ALL;
When I do this in PostgreSQL 9 I get the following:
my_database=> ALTER TABLE my_table DISABLE TRIGGER ALL;
ERROR: permission denied: "RI_ConstraintTrigger_25366" is a system trigger
PS: This table was created by the user that is running this command.
Any clues on this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
某些触发器会自动添加以强制执行约束,除非您是超级用户,否则无法禁用这些触发器。如果您只想禁用已添加的正常触发器,请执行以下操作:
Some triggers are added automatically to enforce constraints, and those can't be disabled unless you are a superuser. If you only want to disable the normal triggers which you have added then do this: