строки, если это балк апдейт?
Суть дилеммы в том, что необходим лог в котором 1.есть время изменение строки (например клок таймпстамп из триггера бефор)
2.есть состояние строки после всей череды триггеров
.
Заранее благодарен!
Где (в таблице, логе...) фиксировать (и зачем, любопытно)? А так, казалось бы — в самом первом AFTER UPDATE ... FOR EACH ROW триггере (вроде, это самое близкое, что есть к моменту изменения, если делать это не в самом UPDATE statement).
Фиксировать лог. Лог изменений таблицы. В самом логе нужно время, когда в таблице поменяли эту строчку и диф, чтобы диф получить надо последнее состояние . Самый первый after for each row не увидит изменений из триггеров ниже, а их тьма. Это свой отечественный и самый самый крутой слони. Сейчас он работает ужасно и через раз, мне надо сделать его просто плохим
Сделайте в самом последнем
Время не бьётся
В двух тогда в первом и последнем )
Вот сейчас так и сделано) это не работает, как 1й найти во втором?
Ну в таблице логов наверное есть ключ?
И? Это ни о чем не говорит
> Самый первый after for each row не увидит изменений из триггеров ниже, а их тьма. Эти триггеры (`AFTER) в норме должны не делать никаких изменений текущего row вообще (потому что иначе получается бесконечная рекурсия). Если же там это как-то обошли, то... может, поправить сами UPDATE, если это возможно? > Это свой отечественный и самый самый крутой слони. Нет бы заменить на нормальный... ;)
Фсб не нравится нормальный, как и пг новее 9.6 Там сессионные переменные, которые рекурсии все стопят
Что значит не говорит?
Ну представьте что при изменении 1 строки у вас автоматом меняются 10 строк в других таблицах, а там тоже нужны все логи
Нда... даже не знаю, что и сказать. :( Я спрячусь вот за этим, пожалуй (мне больше не интересно, извините): https://wiki.postgresql.org/wiki/FAQ#I_have_a_program_that_says_it_wants_PostgreSQL_x.y.1._Can_I_use_PostgreSQL_x.y.2_instead.3F ;)
Обсуждают сегодня