LINUX.ORG.RU
ФорумAdmin

Поиск изменений в таблицах бд postgresql

 , ,


0

2

Копаюсь в одном проприетарном софте(websense) для докрутки под него либы , с целью получения подобия api . Добрался до части sql , а именно модификации БД .

Соотвественно возникло пару вопросов по слону:

1) Каким запросом можно отследить последние изменения в бд(по таблицам ходить вручную не хочеться постоянно(под 70 таблиц + вьющки и функции) ) ?

2) Каким образом(запросом) пройтись по всем таблицам и их строкам на определенное значение(не делать по типу select таблица * where и тд и тп ) ?

★★★★★

1) Каким запросом можно отследить последние изменения в бд(по таблицам ходить вручную не хочеться постоянно(под 70 таблиц + вьющки и функции) ) ?

http://www.postgresql.org/docs/9.0/static/sql-notify.html
http://www.postgresql.org/docs/9.0/static/libpq-notify.html

2) Каким образом(запросом) пройтись по всем таблицам и их строкам на определенное значение(не делать по типу select таблица * where и тд и тп ) ?

наверное, написать свою хранимую функцию, которая бы читала pg_tables.tablename where schemaname not in ('pg_catalog', 'information_schema') и потом искала бы все поля таблиц в pg_class и в зависимости от типов в pg_type выдавала бы нужные поля в запросе через union... но зачем такое?

Slavaz ★★★★★
()

первое тригерами решается, есть даже решения по репликации построенные на тригерах

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

первое тригерами решается, есть даже решения по репликации построенные на тригерах

Пример можешь подсказать .

pinachet ★★★★★
() автор топика
Ответ на: комментарий от maxcom

Насчет триггеров - согласен. Самое оптимальное решение IMHO, поскольку расширяемое и управляемое.

no-dashi ★★★★★
()
Ответ на: комментарий от maxcom

там копаться надо, но ничего. пока я первый способ сморю

pinachet ★★★★★
() автор топика
Ответ на: комментарий от pinachet

я ошибся, извиняюсь. Notify это немного не то. Триггерами надо ловить, как сказал maxcom

Slavaz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.