|
Триггер отменяющий изменения в таблице
|
|||
---|---|---|---|
#18+
Ребята, помогите написать триггер, никак не могу сообразить Есть две таблицы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Нужен триггер, который при обновлении данных в таблице tFIO переписывал бы это обновление в таблицу tFIO_new, а таблицу tFIO оставлял бы без изменений. Мне видится вот такой вариант Код: sql 1. 2. 3. 4. 5. 6.
И вроде бы вариант хороший, но следующий шаг должен быть такой. При удалении записи из таблицы tFIO_new она должна апдейтить запись соответствующего номера в таблице tFIO. Вот тут я затрудняюсь, подкиньте идею. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 12:20 |
|
Триггер отменяющий изменения в таблице
|
|||
---|---|---|---|
#18+
Написать ещё один триггер. На этот раз - для таблицы tFIO_new. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 13:44 |
|
Триггер отменяющий изменения в таблице
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Написать ещё один триггер. На этот раз - для таблицы tFIO_new. Ну это понятно, но триггер на tFIO имеет тип INSTEAD OF и вставить в таблицу физически ничего не даст. Как вариант использовать триггер не INSTEAD OF, а например after update, но нужно как-то отменять изменения, с этим я не могу разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 13:54 |
|
Триггер отменяющий изменения в таблице
|
|||
---|---|---|---|
#18+
slavadan, имхо, правильно такую логику реализовывать на ХП, а не пытаться "вложить" её в триггеры ... Но, как вариант, можно в триггере на удаление tFIO_new устанавливать какое-то "секретное" значение CONTEXT_INFO после чего, в этом же триггере выполнять UPDATE tFIO а в триггере INSTEAD OF UPDATE tFIO, проверять CONTEXT_INFO() и в зависимости от его значения, или инсертить в tFIO_new, или апдейтить tFIO ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 14:35 |
|
Триггер отменяющий изменения в таблице
|
|||
---|---|---|---|
#18+
slavadan Dimitry Sibiryakov Написать ещё один триггер. На этот раз - для таблицы tFIO_new. Ну это понятно, но триггер на tFIO имеет тип INSTEAD OF и вставить в таблицу физически ничего не даст. Как вариант использовать триггер не INSTEAD OF, а например after update, но нужно как-то отменять изменения, с этим я не могу разобраться. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 14:45 |
|
Триггер отменяющий изменения в таблице
|
|||
---|---|---|---|
#18+
felix_ff slavadan пропущено... Ну это понятно, но триггер на tFIO имеет тип INSTEAD OF и вставить в таблицу физически ничего не даст. Как вариант использовать триггер не INSTEAD OF, а например after update, но нужно как-то отменять изменения, с этим я не могу разобраться. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.
Спасибо уважаемому felix_ff, код работает Немного исправил код во втором триггере, должно быть Код: sql 1.
вместо Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2020, 16:57 |
|
|
start [/forum/topic.php?fid=46&tid=1685639]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 252ms |
total: | 385ms |
0 / 0 |