Как изменить владельца триггера событий в postgresql? - PullRequest
0 голосов
/ 06 сентября 2018

Документация гласит, что команда для изменения владельца триггера события:

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 }

Безрезультатно. В параметре name на этой странице , по-видимому, предполагается, что схема выводится при ее создании, но не упоминается о квалификации схемы при попытке изменить триггер.

РЕДАКТИРОВАТЬ Фактическая команда запускается с псевдо-значениями:

ALTER EVENT TRIGGER modify_relationship OWNER TO new_admin_user;

ALTER EVENT TRIGGER products.modify_relationship OWNER TO new_admin_user;

1 Ответ

0 голосов
/ 06 сентября 2018

Относительно незначительная ошибка.

Убедитесь, что триггер является фактическим триггером события.

Проверьте с помощью мета-команды \dy. Если он не отображается здесь, вероятно, это не триггер события.

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

Триггеры определены стандартом SQL, и в документации для них нет упоминания о владении

Изменение владельца триггера события указывается в документации как опция для ALTER EVENT TRIGGER

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

Спасибо @ eurotrash за комментарий, который привел меня к различию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...