documentation指出,用于更改事件触发器的所有者的命令为:
ALTER EVENT TRIGGER name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
但是出现以下错误:
[42704] ERROR: event trigger "insert_component_relationship" does not exist
我认为这意味着我需要使用架构名称对其进行限定,所以我尝试了:
ALTER EVENT TRIGGER schema.name OWNER TO { new_owner }
但这也使我大叫:
[42601] ERROR: syntax error at or near "."
然后我刚开始尝试其他我认为可行的命令组合,例如:
ALTER TRIGGER name ON table OWNER TO { new_owner }
ALTER TRIGGER name ON schema.table OWNER TO { new_owner }
无济于事。在page的name
参数下,似乎表明在创建模式时就可以推断出该模式,但是在尝试更改触发器时却没有提及模式限定。
EDIT使用伪值运行实际命令:
ALTER EVENT TRIGGER modify_relationship OWNER TO new_admin_user;
ALTER EVENT TRIGGER products.modify_relationship OWNER TO new_admin_user;
答案 0 :(得分:0)
相对较小的错误。
确保触发器是实际事件触发器。
使用元命令\dy
检查。如果未在此处显示,则可能不是事件触发器。
触发器由SQL标准定义,documentation上没有提及所有权
在ALTER EVENT TRIGGER的文档中,可以选择更改事件触发器的所有权
There is no CREATE EVENT TRIGGER statement in the SQL standard.
感谢@eurotrash的评论使我与众不同。