секции нужно прикручивать и триггер еще ???
никак оно не наследуется ?
А какая версия PostgreSQL? В современных ( https://www.postgresql.org/docs/current/sql-createtrigger.html ) : Creating a row-level trigger on a partitioned table will cause an identical “clone” trigger to be created on each of its existing partitions; and any partitions created or attached later will have an identical trigger, too. If there is a conflictingly-named trigger on a child partition already, an error occurs unless CREATE OR REPLACE TRIGGER is used, in which case that trigger is replaced with a clone trigger. When a partition is detached from its parent, its clone triggers are removed.
да читал. ПГ13. но могу еще до ПГ14 апнуться бобер явно не показал наличие тригеров, вот и непонятки. проблема собственно в другом сделал простой триггер который просто меняет все значения на 1 есть логическая репликация из ПГ11 в ПГ13 выдает ошибку violates partition constraint что может быть, тк ключ партиционирования я поменял но почему-то триггер в котором я собирался исправить ошибку не срабатывает в логе все равно исходные данные
> бобер явно не показал наличие тригеров, вот и непонятки. Врёт, как всегда, большое дело. ;) In psql we trust. > сделал простой триггер который просто меняет все значения на 1 Лучше покажите целиком (CREATE statements) создание (с текстом) триггерной функции и триггера.
Ну или хоть \d+ партиционированной_таблицы или \d+ этой_секции покажите...
Ну и Вы забыли ALTER TABLE <я не собираюсь перепечатывать с картинок названия> ENABLE REPLICA TRIGGER <это прямо издевательство над коллегами>;, видимо — вот он на реплике и не срабатывает. ;)
в какой момент нужно альтер тэйбл ? и для чего. больше не буду картинками. боялся что текст разъедется (((
После создания этого триггера на реплике. Нужно для того... я просто процитирую https://www.postgresql.org/docs/current/sql-altertable.html: The trigger firing mechanism is also affected by the configuration variable session_replication_role. Simply enabled triggers (the default) will fire when the replication role is “origin” (the default) or “local”. Triggers configured as ENABLE REPLICA will only fire if the session is in “replica” mode, and triggers configured as ENABLE ALWAYS will fire regardless of the current replication role. The effect of this mechanism is that in the default configuration, triggers do not fire on replicas. This is useful because if a trigger is used on the origin to propagate data between tables, then the replication system will also replicate the propagated data, and the trigger should not fire a second time on the replica, because that would lead to duplication. However, if a trigger is used for another purpose such as creating external alerts, then it might be appropriate to set it to ENABLE ALWAYS so that it is also fired on replicas.
Обсуждают сегодня