|
|
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Добрый день. Пришел момент когда необходимо сделать логирование всех изменений в базе, отсюда появились вопросы. На INSERT, UPDATE, DELETE - без проблем все сделал. Можно ли как то сделать триггер на создание таблицы? Можно ли во время выполнения функции (которая пишет лог в нужные таблицы) получить имя пользователя который вызвал эту функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:31:59 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
crause, Event Trigger ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:34:14 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
crause...Можно ли во время выполнения функции (которая пишет лог в нужные таблицы) получить имя пользователя который вызвал эту функцию? SESSION_USER ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:36:14 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Дело в том, что проснулся не с той ноги, и забыл английские буквы, а если честно плохо очень дается документация по БД на английском. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:36:40 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Слушайте, crause, я ведь уже говорил вам неоднократно, чтобы вы не связывались с триггерами. И дались вам эти триггеры? От них одни неприятности. Все равно user вызывает хранимые процедуры (ну в постгресе - это функции) - вот и логируйте через эти вызываемые хранимые процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:38:28 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Триггерман, если функция будет выполнять туже хренотень, что и триггер, то какая разница? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:46:33 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Помню, кто-то говорил. С тригерами у меня только логирование. Тригер передает в функцию логирования параметры, а та пишет в таблицу. Я думаю здесь нельзя накосячить сильно. Конечно с дуру можно и .... поломать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:47:45 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Еще такой вопрос образовался. Можно ли в функции узнать: -ип адрес с которого происходит действие. -отправить email или зделать запись на другой сервер или в другую базу. Фигней не собираюсь заниматься, меня интересует возможность этого. Если еще есть описание по этому, тогда по возможности ссылочку дайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:51:08 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
crauseПомню, кто-то говорил. С тригерами у меня только логирование. Тригер передает в функцию логирования параметры, а та пишет в таблицу. Я думаю здесь нельзя накосячить сильно. Конечно с дуру можно и .... поломать. и вы, crause, и V&N - раньше, скорее всего, не имели дела с триггерами. Отсюда и высказывания - мол, "какая разница, с триггером или без триггера", и "оно все будет то же самое что с триггером, что без него" ... Потом, некоторое время спустя, после начала активного использования триггеров, у вас начнутся проблемы, источник которых вы даже не распознаете ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:53:07 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
ТриггерманcrauseПомню, кто-то говорил. С тригерами у меня только логирование. Тригер передает в функцию логирования параметры, а та пишет в таблицу. Я думаю здесь нельзя накосячить сильно. Конечно с дуру можно и .... поломать. и вы, crause, и V&N - раньше, скорее всего, не имели дела с триггерами. Отсюда и высказывания - мол, "какая разница, с триггером или без триггера", и "оно все будет то же самое что с триггером, что без него" ... Потом, некоторое время спустя, после начала активного использования триггеров, у вас начнутся проблемы, источник которых вы даже не распознаете ... С Вами спорить не буду, по тому как не все знаю по работе с БД и тем более триггерами. Можете какой то пример привести, почему лучше не использовать. И как могут начаться проблемы из-за чего при использовании триггеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 13:56:37 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Триггерман, Вы не угадали, у меня триггер триггером погоняет и рули контекст подменяют :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 14:05:29 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
crauseС Вами спорить не буду, по тому как не все знаю по работе с БД и тем более триггерами. Можете какой то пример привести, почему лучше не использовать. И как могут начаться проблемы из-за чего при использовании триггеров. Понимаете, crause, тут все не так просто ... В принципе (по идее), проблем быть никаких не должно, но вот ведь какая штука получается ... Проблемы могут быть неявные, логические, архитектурные, так сказать ... Если вы - обладатель супер-мозга (скажем, как у Анатолия Вассермана, ну или хотя бы как у меня, скромного Триггермана), то в общем-то вы вполне способны построить архитектуру и на триггерах и мысленно отследить все хитросплетения их взаимодействия ... А проблемы начинаются оттого, что большинство программистов-базовиков (не хватающих звезд с неба) не в состоянии совладать со все возрастающей сложностью ими самими же созданной системы (в данном случае - БД). Сначала вы повесите триггер на одну таблицу (а потом еще парочку на нее же), затем вы сделаете это с другой таблицей, с третьей, ... пока не поймете, что вы уже не контролируете ситуацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 14:05:53 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
crause... -ип адрес с которого происходит действие. -отправить email или зделать запись на другой сервер или в другую базу.... inet_client_addr email - функция, на любом подключаемом языке с/plperl/pljava ... другой сервер или в другую базу - dblink ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 14:12:20 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Триггерман, Уяснил. Понравилась фраза "пока не поймете, что вы уже не контролируете ситуацию". Улыбнуло, вспомнил Терминатора. V&N, Спасибо и Вам тоже. Буду разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 14:16:15 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
V&N Триггерман, если функция будет выполнять туже хренотень, что и триггер, то какая разница?разница в глубине перекрытия триггер перекрывает ручные апдейты вороватых триггерманов, а им этого не хочется. а если без оглядки на универсальность - пакетную обработку лучше делать пакетными стейтментами, а не for each rows логикой. это несколько быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 20:00:10 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
crauseДобрый день. Пришел момент когда необходимо сделать логирование всех изменений в базе Если ВСЕХ !!! то ты умрешь по перформансу с триггерами, без вариантов. Тут единственное что справится - это CDC, но у постгреса с этим проблемы. В любом случае настрой как минимум репликацию в другую базу хотя бы, и там уже триггеруй. p.s. триггеры - зло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2014, 10:21:29 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Тригеры зло, индексы зло, таблицы зло, база зло, процедуры зло. Храните все в файлах!! Но они тоже - зло!!! Мне понравилось как Триггерман тонко описал почему не стоит использовать тригеры! Так хочу сказать, что под такую "тонкость" можно подвести любой инструмент, и не только БД. Вы и в ООП может поназначать, и переназначать так, что бы потом перестанете контролировать приложение. Любое более менее сложное приложение - нельзя написать в виде последовательной процедуры. Есть много разветвлений. И получить логическое противоречие можно при использовании любого инструмента. Так что не несите чепуху по поводу тригеров. Есть задачи, которые просто нереально решить без них. А если и реально, то с кучей кодобреда.. Если у вас там не выходит что то, то это не накладывает панацею на всех остальных в плане использования инструментов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 12:12:53 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
одним из полезных может быть правило -- триггеры только для денормализаций/репликаций/итп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 13:52:18 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Electric200не несите чепуху по поводу тригеров. Есть задачи, которые просто нереально решить без них.Ловлю вас на слове. Приведите задачи, которые нельзя решить без триггеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 14:55:09 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinодним из полезных может быть правило -- триггеры только для денормализацийПолнейшая чушь. Денормализация - это одно, триггер - это другое. В огороде - бузина, а в Киеве - дядька. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 14:57:06 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
ТриггерманElectric200не несите чепуху по поводу тригеров. Есть задачи, которые просто нереально решить без них.Ловлю вас на слове. Приведите задачи, которые нельзя решить без триггеров. Пожалуйста. Каскадное обновление записей в одной таблице, где есть запись - родитель, и запись потомок . При обновлении родителя, должно изменятся значение потомка. Любая запись стает родителем автоматически, если у нее появляется потомок. У каждого родителя может быть неограниченно число потомков как горизонтально так и по вертикальной иерархии. Т.е рекурсивно - каскадное обновление данных. С тригером на UPDATE это решается 3 строчками, а без тригера на родном PHP это был бы велосепед и не факт что вообще реализуем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 15:18:33 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
авторчушь когда уже sql ру перестанет давать анонимные посты в спец форумы, помойка, а не чаты тут получаются. это же профессиональное типа сообщество, нахера, нам тут анонимы? мы же не погоду тут обсуждаем. кто тут модератор? поясните позицию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 15:36:59 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
О чём спор? Не зная задачи, говорить триггеры "зло/добро" - бред сивой кобылы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 15:37:43 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Electric200С тригером на UPDATE это решается 3 строчками, а без тригера на родном PHP это был бы велосепед и не факт что вообще реализуем.Вы сами понимаете, что это facepalm? Зачем вы сами себя так подставляете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 15:48:58 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Misha Tyurinавторчушь когда уже sql ру перестанет давать анонимные посты в спец форумы, помойка, а не чаты тут получаются. это же профессиональное типа сообщество, нахера, нам тут анонимы? Помойка - это когда специалист пишет "триггеры только для денормализаций". И чем это тебя анонимный никнейм так бесит ? Оттого что ты - Вася Пупкин Миша Тюрин, твое утверждение не станет более правильным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 15:51:49 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
ТриггерманElectric200не несите чепуху по поводу тригеров. Есть задачи, которые просто нереально решить без них.Ловлю вас на слове. Приведите задачи, которые нельзя решить без триггеров. Партицирование в Постгресе. RULE не предлагать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 21:26:16 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Триггерман...задачи поддержания логической целостности, если открытому кругу ползателей (например криворуким триггерманам) открыта работа над таблицами (insert update delete ) вполне нормально решается триггерами (и _реально_ решаются только ими) если же разработчик заранее смиряется с тем, что доступ к его базе будет всегда проистекать по сугубо ограниченному, охватываемому ограниченным умом ограниченного разраба перечню жестких интерфейсов (ака хранимки) -- то задача снимается (зачем писать триггер -- когда известны все точки входов и выходов). конечно при этом никакой логической целостности никто на деле не гарантирует, но это уже вопрос к этому никте. ну т.е. триггера дают некие универсальные механизмы, но универсалии обычно более тяжелы, чем специи . но универсальные механизмы позволяют опираться на некие законы сохранения (ими поддерживаемые), а не универсальные -- или начхать на возможность бледно выгляднуть, в случае чего, либо всюду подозревать (и перекрывать излишним кодом) возможность налететь на несохранение неявно используемых кодом "интегралов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 21:41:00 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
ТриггерманElectric200С тригером на UPDATE это решается 3 строчками, а без тригера на родном PHP это был бы велосепед и не факт что вообще реализуем.Вы сами понимаете, что это facepalm? Зачем вы сами себя так подставляете? В чем собственно, обоснуйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 21:43:07 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Sergei.AgalakovТриггерманпропущено... Ловлю вас на слове. Приведите задачи, которые нельзя решить без триггеров. Партицирование в Постгресе. RULE не предлагать.вам предложат всюду в коде всех хранимок вычислять имена пратиций напрямую, и, следовательно, использовать днамич скл. а партиции всегда нарезать сугубо руками и/или джобами. хотя партицирование, особенно самопальное, как в пж -- реальное зло. но колемся, ога; и продолжаем жрать что дают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 21:45:49 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Electric200Триггерманпропущено... Вы сами понимаете, что это facepalm? Зачем вы сами себя так подставляете? В чем собственно, обоснуйте.обход дерева рисуется довольно просто с помощью WITH RECURSIV запроса [т.е. CTE]. А до того -- легко делался с помощью рекурсивно вызываемой хранимки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 21:50:11 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
какабычна, ПЖ оно работает через тригеры, насколько мне известно. В любом случае, если требуется добиться некоторой равномерности и распределенности в базе, при большое количестве данных, то очень даже нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 21:52:07 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
Мишутка, пожалуйста, съебись с форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2014, 21:52:53 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
ТриггерманMisha Tyurinодним из полезных может быть правило -- триггеры только для денормализацийПолнейшая чушь. Денормализация - это одно, триггер - это другое. В огороде - бузина, а в Киеве - дядька. Триггерман, поясни про бузину. Какие предлагаешь примеры использования триггеров? Поддержу Михаила в том, что использовать триггеры для поддержки денормализации данных, это хорошее правило. Пожалуй вспомнил еще одно применение. Если приложение чужое и менять исходный код хранимых процедур нельзя, а вклиниться в логику работы нужно. Тут триггеры помогают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2014, 15:30:39 |
|
||
|
Триггер с логированием.
|
|||
|---|---|---|---|
|
#18+
какабычнаSergei.Agalakovпропущено... Партицирование в Постгресе. RULE не предлагать.вам предложат всюду в коде всех хранимок вычислять имена пратиций напрямую, и, следовательно, использовать днамич скл. а партиции всегда нарезать сугубо руками и/или джобами. хотя партицирование, особенно самопальное, как в пж -- реальное зло. но колемся, ога; и продолжаем жрать что дают. Ваше предложение особенно весело работает, когда надо 100500 записей вставить из Insert скрипта или CSV в партицированную таблицу. Каждый раз ручками делить на N частей по количеству партиций? И чем вам не нравится сама идея партицирования данных? Мне вот очень не хватает партицирования а-ля Оракл в Постгресе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2014, 23:02:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=53&tid=1998605]: |
0ms |
get settings: |
10ms |
get forum list: |
26ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 194ms |
| total: | 514ms |

| 0 / 0 |
