|
|
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток. Прошу помогите с триггером. Условие: Создать триггер, в департаменте не может быть больше 6 сотрудников. create or replace trigger Trigger123 after insert or update on employees for each row declare kol number; err exception; begin select count(employee_id) into kol from employees where department_id=:new.department_id group by department_id; if inserting then if kol > 6 then raise err; end if; end if; if updating then if :new.department_id <> :old.department_id then if kol > 6 then raise err; end if; end if; end if; exception when err then RAISE_APPLICATION_ERROR(-20200, 'STOP'); end Trigger123; Но данный триггер вызывает мутацию Решил исправить это таким образом: create or replace trigger zpk FOR INSERT OR UPDATE ON employees compound trigger kol number; d_id number; BEFORE statement is begin select count(employee_id) into kol from employees where department_id=:new.department_id group by department_id; end before statement; after each row is begin if inserting then if kol > 6 then RAISE_APPLICATION_ERROR(-20200, 'STOP'); end if; end if; if updating then if :new.department_id <> :old.department_id then if kol > 6 then RAISE_APPLICATION_ERROR(-20200, 'STOP'); end if; end if; end if; end after each row ; end zpk; Но выходит ошибка... ПРОШУ ПОМОГИТЕ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 19:17 |
|
||
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
dan.mukazhan, Чисто как пища для курсача. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 19:55 |
|
||
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
oragraf, А зачем удалять первоначальную таблицу ? И... где там указано, что именно в департаменте не должно быть больше 6 сотрудников ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 20:00 |
|
||
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
oragrafЧисто как пища для курсача.Эт вряд ли (с). Правильнее будет скорей всего отправить товарища в ссылки, типа «RTFM» или «студентам желающим помощи».. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 20:02 |
|
||
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
mRdUKE, Да, блин, знаний не хватает) СПАСИБО ОГРОМНОЕ ! Выручили) А можно узнать, что означает : referencing new as new old as old и: pragma autonomous_transaction ?????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 20:08 |
|
||
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
dan.mukazhan, Дальше сам дерзай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 20:09 |
|
||
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
oragraf, Будем стараться !) Спасибо ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 20:14 |
|
||
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
dan.mukazhan, И не забудь, в табелицу оракля может одновременно писАть несколько сессий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 20:20 |
|
||
|
Ограничивающий триггер
|
|||
|---|---|---|---|
|
#18+
dan.mukazhan, для оракля задачка не простая недавно на не больше трех была зы мат вью .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2016, 21:53 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39353053&tid=1886962]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
146ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 475ms |

| 0 / 0 |
