Название: [РЕШЕНО] NOTIFY с аргументом в PostgreSQL Отправлено: sergek от Февраль 03, 2015, 09:28 Коллеги,
нужно в уведомлении NOTIFY передать, к примеру, значение поля для добавленной записи таблицы. Примерно так: Код: CREATE FUNCTION wrequest_notify() RETURNS trigger AS $$ Только нужно передать не константу ('1234'), а значение переменной, например, Код: NOTIFY wrequested, NEW.requestid; Название: Re: NOTIFY с аргументом в PostgreSQL Отправлено: Old от Февраль 03, 2015, 10:06 Кастуйте ее строку и передавайте.
Название: Re: NOTIFY с аргументом в PostgreSQL Отправлено: sergek от Февраль 03, 2015, 11:15 Если вы имеете в виду
Код: NOTIFY wrequested, CAST(123 as varchar(10)); Код: ОШИБКА: ошибка синтаксиса (примерное положение: "CAST") Название: Re: NOTIFY с аргументом в PostgreSQL Отправлено: Old от Февраль 03, 2015, 11:49 Вот так отправляйте:
PERFORM pg_notify( wrequested, param ); Где param - VARCHAR. Название: Re: NOTIFY с аргументом в PostgreSQL Отправлено: Johnik от Февраль 03, 2015, 11:57 Код: ОШИБКА: ошибка синтаксиса (примерное положение: "CAST") Код: select 123::varchar(10) Название: Re: NOTIFY с аргументом в PostgreSQL Отправлено: sergek от Февраль 03, 2015, 12:22 Спасибо огромное!
Вот окончательный вариант: Код: CREATE FUNCTION wrequest_notify() RETURNS trigger AS $$ Название: Re: [РЕШЕНО] NOTIFY с аргументом в PostgreSQL Отправлено: Old от Февраль 03, 2015, 15:40 Спасибо огромное! Я делаю следующим образом: первый параметр это название таблицы, а второй собирается из типа операции над записью и ее id.Например: "I:1010" - добавлена запись с id = 1010 (отправляется после добавления) "U:100500" - обновлена запись с id = 100500 (отправляется после обновления) "D:321" - будет удалена запись с id = 321 (отправляется перед удалением) "R" - необходимо обновить таблицу (отправляется после удаления) Модели подписываются на уведомления от соответствующих им таблиц и обновляют свое состояние согласно уведомлениям. Оператор видит все изменения происходящие с таблицей. |