172 похожих чатов

Добрый день! кто-нибудь поясните про триггеры к секциям! получается что для каждой

секции нужно прикручивать и триггер еще ???
никак оно не наследуется ?

9 ответов

22 просмотра

А какая версия 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.

Саша-Козлов Автор вопроса
Yaroslav Schekin
А какая версия PostgreSQL? В современных ( https:...

да читал. ПГ13. но могу еще до ПГ14 апнуться бобер явно не показал наличие тригеров, вот и непонятки. проблема собственно в другом сделал простой триггер который просто меняет все значения на 1 есть логическая репликация из ПГ11 в ПГ13 выдает ошибку violates partition constraint что может быть, тк ключ партиционирования я поменял но почему-то триггер в котором я собирался исправить ошибку не срабатывает в логе все равно исходные данные

Саша Козлов
screenshot да читал. ПГ13. но могу еще до ПГ14 апнуться боб...

> бобер явно не показал наличие тригеров, вот и непонятки. Врёт, как всегда, большое дело. ;) In psql we trust. > сделал простой триггер который просто меняет все значения на 1 Лучше покажите целиком (CREATE statements) создание (с текстом) триггерной функции и триггера.

Саша Козлов
screenshot да читал. ПГ13. но могу еще до ПГ14 апнуться боб...

Ну или хоть \d+ партиционированной_таблицы или \d+ этой_секции покажите...

Саша Козлов
есть триггеры да

Ну и Вы забыли ALTER TABLE <я не собираюсь перепечатывать с картинок названия> ENABLE REPLICA TRIGGER <это прямо издевательство над коллегами>;, видимо — вот он на реплике и не срабатывает. ;)

Саша-Козлов Автор вопроса
Yaroslav Schekin
Ну и Вы забыли ALTER TABLE <я не собираюсь перепеч...

в какой момент нужно альтер тэйбл ? и для чего. больше не буду картинками. боялся что текст разъедется (((

Саша Козлов
в какой момент нужно альтер тэйбл ? и для чего. б...

После создания этого триггера на реплике. Нужно для того... я просто процитирую 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.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта