powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер на postgres_fdw foreign table не работает
5 сообщений из 5, страница 1 из 1
Триггер на postgres_fdw foreign table не работает
    #38920687
djpeter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всех приветствую!

Ситуация такая. Имеется сервер postgresql 9.4.1 с разрекламированной возможностью использования триггеров на внешних таблицах.
Я попробовал этим воспользоваться. На сервере есть две базы (условно назовем newdb и olddb), одна подключена к другой через postgres_fdw вот так:

Код: sql
1.
2.
3.
4.
5.
6.
CREATE SERVER fo
   FOREIGN DATA WRAPPER postgres_fdw
  OPTIONS (host '127.0.0.1',port '5432',dbname 'olddb');
ALTER SERVER fo
  OWNER TO mainuser;
GRANT USAGE ON FOREIGN SERVER dev TO mainuser;


Сделан маппинг пользователю mainuser:
Код: sql
1.
2.
3.
4.
CREATE USER MAPPING 
   FOR mainuser
   SERVER fo
  OPTIONS (user 'mainuser',password '12345');



Далее сделана внешняя таблица примерно вот так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FOREIGN TABLE userdata
   (rowid integer ,
    username character varying(255) NOT NULL,
    password character varying(255) NOT NULL,
    type character varying(255) NOT NULL
SERVER fo
   OPTIONS (table_name 'userdata');
ALTER FOREIGN TABLE userdata
  OWNER TO mainuser;



На эту внешнюю таблицу сделана триггерная функция и триггер:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE OR REPLACE FUNCTION trtestfunction()
  RETURNS trigger AS
$BODY$
BEGIN

    -- RAISE NOTICE 'testme ';
   INSERT INTO newuserdata(uname, pass) VALUES(NEW.username, NEW.password);
    RETURN NEW;
END
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION trtestfunction()
  OWNER TO mainuser;

CREATE TRIGGER trtest
   AFTER INSERT 
   ON userdata
   FOR EACH ROW
   EXECUTE PROCEDURE trtestfunction();



Данная конструкция не работает, хотя данные во внешней таблице обновляются моментально. В чем может быть проблема?
...
Рейтинг: 0 / 0
Триггер на postgres_fdw foreign table не работает
    #38920734
djpeter,
стесняюсь спросить, события какой из 2-х БД вы полагаете должны обрабатываться в триггере, созданном в newdb ?
и, опять же стесняюсь спросить, события какой из 2- ДБ у вас "не бобрабатываюцца"
...
Рейтинг: 0 / 0
Триггер на postgres_fdw foreign table не работает
    #38920739
djpeter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Триггер создан на внешней таблице в newdb. Событие должно обрабатываться на ней.
Согласно вот этому примеру http://michael.otacoo.com/postgresql-2/postgres-9-4-feature-highlight-trigger-foreign-tables/, при обновлении/добавлении записи основной таблицы во внешней базе происходит то же событие в связанной таблице, являющейся foreign table. Или я чего то не понял?
...
Рейтинг: 0 / 0
Триггер на postgres_fdw foreign table не работает
    #38920786
djpeterТриггер создан на внешней таблице в newdb. Событие должно обрабатываться на ней.
Согласно вот этому примеру http://michael.otacoo.com/postgresql-2/postgres-9-4-feature-highlight-trigger-foreign-tables/, при обновлении/добавлении записи основной таблицы во внешней базе происходит то же событие в связанной таблице, являющейся foreign table. Или я чего то не понял?с каких уёв ?

там же битым текстом написано

автор each time a DML occurs on the foreign tableт.е. в fdw 9.4. добавлена

1. обновляемость fwd dml-Ем со стороны подключения
2. обработка событий dml [возбуждаемых и происходящих] на стороне подключения

3. события данных, как таковых, по прежнему могут возникать только на стороне реального их размещение -- в ДБ old


лично я так думаю
...
Рейтинг: 0 / 0
Триггер на postgres_fdw foreign table не работает
    #38920806
хотя, даже если не смотерть на бложег какого-то пдрса, а в реальную доку
http://www.postgresql.org/docs/9.4/static/trigger-definition.html

--там как всегда в пж создана видимость документации -- нагребли слова в кучку, а реально по факту никуа не описали, гнойные альтернативно ориентированный гондурасты, зла не хватает.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Триггер на postgres_fdw foreign table не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]