如何更改 postgresql 中事件触发器的所有者?

How do I change the owner of an event trigger in postgresql?

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 }

无济于事。在这个 pagename 参数下,似乎表明模式是在创建时推断出来的,但在尝试更改触发器时没有提及模式限定。

EDIT 带有伪值的实际命令运行:

ALTER EVENT TRIGGER modify_relationship OWNER TO new_admin_user;

ALTER EVENT TRIGGER products.modify_relationship OWNER TO new_admin_user;

相对较小的错误。

确保触发器是实际事件触发器。

检查元命令\dy。如果它没有出现在这里,它可能不是事件触发器。

The CREATE TRIGGER statement in PostgreSQL implements a subset of the SQL standard. The following functionalities are currently missing:

触发器由 SQL 标准定义,documentation 没有提及它们的所有权

更改事件触发器的所有权在 ALTER EVENT TRIGGER

的文档中作为一个选项给出

There is no CREATE EVENT TRIGGER statement in the SQL standard.

感谢 @eurotrash 的评论让我获得了殊荣。