|
|
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть такая задача: есть главная таблица, в которую заносятся данные. На эту таблицу есть два триггера, которые фиксируют изменения (insert, update) и записывают логи соответственно в таблицы Table1 и Table2. Первый триггер записывает в Table1 данные которые изменились, а второй в Table2 - кто изменил (или добавил). Соответственно есть view на основе этих двух таблиц, где лежит "Кто и что добавил (изменил)". Вопрос такой: возможно ли сделать триггер на view, который сработает при добавлении (изменении) данных в главной таблице конкретным пользователем. Например, пользователь "Иванов" добавил новую запись в главную таблицу, в другие две - записались логи и сработал триггер, который нужен или это нереально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 15:34 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Rezident_, встречный вопрос - почему триггер именно на представлении и что он будет делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 15:39 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Триггер будет вставлять еще один признак в еще одну таблицу. Потому что условие срабатывания триггера - конкретный пользователь добавил (изменил) определенные данные (а не любые). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 15:47 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Rezident_, Как вы определяете "конкретный пользователь"? И почему это нельзя сделать в одном из двух первых триггеров? Которые, кстати, по-хорошему, имхо, нужно объединить в один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 15:52 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Пару релизов назад просто посоветовали бы streams... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 15:54 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
В Table2 записывается логин пользователя. Такая структура у БД - в одну пишется что изменили, а в другую- кто, изменять ее не представляется возможным, к сожалению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 15:55 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Rezident_Триггер будет вставлять еще один признак в еще одну таблицу. Потому что условие срабатывания триггера - конкретный пользователь добавил (изменил) определенные данные (а не любые). А в чём проблема-то? Вешаешь триггер на вьюху, первые два триггера переделываешь так, чтобы писали данные не в таблицы, а в эту самую вьюху. И всё, телемаркет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 15:59 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, нельзя переделать структуру тех триггеров, в том и проблема, так бы да можно было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 16:03 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovтриггера переделываешь так, чтобы писали данные не в таблицы, а в эту самую вьюху. И всё, телемаркет. Сэр не из Челябинска часом будет? ...а то суровость как-то зашкаливает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 16:06 |
|
||
|
Триггер на представление
|
|||
|---|---|---|---|
|
#18+
Rezident_Dimitry Sibiryakov, нельзя переделать структуру тех триггеров, в том и проблема, так бы да можно было. ТС, если Вам ничего нельзя - то надо отказываться от задачи в пользу более опытных/доверенных коллег. А если все-таки что-то можно - то можно, как минимум: - повесить третий триггер на базовую таблицу - повесить триггер на одну из таблиц логов. - сделать еще одну view над таблицами логов, в которой будет фильтроваться необходимые данные, или даже над имеющейся view. - создать snapshot logs на базовой таблице и слепить materialized view "refresh on commit" - писать события в non-persistent очередь триггером на базовой, логи вести callback-ом ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2016, 16:12 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39317975&tid=1887359]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
177ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 499ms |

| 0 / 0 |
