|
|
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
Длоброго времени суток! Нужна ваша помощь! Пишу триггер который должен обновлять запись после вставки, но он не работает.. подскажите в чем может быть ошибка т.к. пишу тригер впервые Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:03 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
vlad2018, поменяй :old.row_id на :new.row_id, ибо old.row_id = null на момент инсерта. Это же не UPDATE :) Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:10 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
vlad2018, а если по хорошему - перенеси вот это дело Код: plsql 1. в процедуру, которая INSERT данных делает в таблицу. Раскидывать по кускам функционал ни к чему, пусть все находится в одном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:14 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
vlad2018 Код: plsql 1. Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:24 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
шК0ДЕРvlad2018, а если по хорошему - перенеси вот это дело Код: plsql 1. в процедуру, которая INSERT данных делает в таблицу. Раскидывать по кускам функционал ни к чему, пусть все находится в одном месте. Вы имеете в виду, чтоб я в тригере вызывал процедуру которая обновляет запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:28 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
шК0ДЕРvlad2018, поменяй :old.row_id на :new.row_id, ибо old.row_id = null на момент инсерта. Это же не UPDATE :) Код: plsql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:29 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
Триггер AFTER уже не обновляет запись -- он AFTER А в триггере BEFORE достаточно (и необходимо) просто поменять :new.sum := новое значение, а не выполнять UPDATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:31 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
Sheldon CooperшК0ДЕРvlad2018, поменяй :old.row_id на :new.row_id, ибо old.row_id = null на момент инсерта. Это же не UPDATE :) Код: plsql 1. 2. 3. 4. 5. 6. Что вы имеете ввиду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:32 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
vlad2018, триггер тебе вообще не нужен. Перенеси округление в процедуру, где происходит вставка данных в таблицу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:35 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровТриггер AFTER уже не обновляет запись -- он AFTER А в триггере BEFORE достаточно (и необходимо) просто поменять :new.sum := новое значение, а не выполнять UPDATE create or replace trigger s_round before insert on s_doc for each row begin :new.sum= round(:new.sum,2) where row_id = :new.row_id; end s_round; Так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:35 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
create or replace trigger s_round before insert on s_doc for each row begin :new.sum= round(:new.sum,2) where row_id = :new.row_id; end s_round; Так?[/quot] Раз уж пошла такая пьянка, то без where row_id = :new.row_id Обрабатывается каждая вставляемая строка, условие ни к чему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:39 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
vlad2018, на пальцах объясню. У тебя есть процедура в которой записан запрос (к примеру) Код: plsql 1. После вставки срабатывает тригер на UPDATE поля sum. Внимание вопрос, зачем тебе тригер, если можно чуть-чуть переписать запрос на INSERT вот так Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 15:50 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
шК0ДЕРvlad2018, триггер тебе вообще не нужен. Перенеси округление в процедуру, где происходит вставка данных в таблицу Тут вообще ничего не нужно кроме правильного определения поля. Oпредели поле с 2мя дробными а Oracle сам и округлит: Код: plsql 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. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 16:02 |
|
||
|
trigger after insert
|
|||
|---|---|---|---|
|
#18+
vlad2018Так? нет Код: plsql 1. 2. 3. 4. 5. 6. 7. ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2018, 16:11 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39600647&tid=1884447]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
7ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 310ms |

| 0 / 0 |
