|
|
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Помогите пожалуйста решить такую задачку: Создать триггер базы данных, не позволяющий вводить в таблицу ААА более трех однофамильцев, работающих в одном отделе. В случае попытки вставить четвертого однофамильца в отдел должно выводиться на экран соответсвующее сообщение. В таблице уже существуют и заполгненны поля: nom_sotr - номер сотрудника nom_otd - номер отдела name1 - фамилия name2 - имя name3 - отчество city - город zarpl - зарплата заранее спасибо за ответ.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 06:50 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Lom-22Помогите пожалуйста решить такую задачку: Создать триггер базы данных, не позволяющий вводить в таблицу ААА более трех однофамильцев, работающих в одном отделе. В случае попытки вставить четвертого однофамильца в отдел должно выводиться на экран соответсвующее сообщение. В таблице уже существуют и заполгненны поля: nom_sotr - номер сотрудника nom_otd - номер отдела name1 - фамилия name2 - имя name3 - отчество city - город zarpl - зарплата заранее спасибо за ответ....Кажется такое можно сталать триггером after на весь statement ... но не уверен, не писал такого.. попробуй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 06:57 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Lom-22Помогите пожалуйста решить такую задачку: Такое точно у меня сработало... переделай под свою задачу: create table ttttt (a number) / -- сбой на 3м значении (1,2 - можно а 3 уже нельзя) create or replace trigger trg_ttttt_3a_err after insert or update on ttttt begin for r in (select a,count(*) from ttttt group by a having count(*)>2) loop raise_application_error(-20001,'3j povtor '||to_char(r.a)); end loop; end; / Теперь в таблицку tttt можно затолкать только 2 одинаковых значения но не 3.. Проверил работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 07:03 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Sxak Lom-22Помогите пожалуйста решить такую задачку: Такое точно у меня сработало... переделай под свою задачу: create table ttttt (a number) Наврал - так нельзя:-( Пусть 3 пользователя вводят одинаковое одновременно и пока не коммитят.. Триггер тогда не ругается (не видит сессии другию пользователей) Потом происходит коммит и триггер начинает ругаться даже на безобидное изменение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 07:18 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
SxakНаврал - так нельзя:-( Пусть 3 пользователя вводят одинаковое одновременно и пока не коммитят.. Триггер тогда не ругается (не видит сессии другию пользователей) Потом происходит коммит и триггер начинает ругаться даже на безобидное изменение... PS может быть так будет можно если ты создашь индекс по ключевым полям (в твоем случае - отдел и фамилия) тогда может быть при вставке произойдет блокировка нужных блоков етого индекса и вставка одновременно одниъх значений будет невозможна, но тут у меня в голове некоторая каша - произойдет ли реально нужная блокировка не знаю. Но даже если произойдет перед созданием триггера надо будет проверить есть ли уже неправильные записи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 07:23 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Lom-22Помогите пожалуйста решить такую задачку: Ну и последнее раз уж все молчат про блокировку а делать все и проверять тут времени нет и если блокировка обломается то теоритически возможна еще след схема: 1.триггер before на все - сбрасывает пакетные переменные 2. триггер after for each row - добавляет в PL/SQL таблицу которая есть пакетная переменая (та которая сбрасыватеся триггеров бефоре) ключи 3. триггер after на все - провереят только по ключам в пак переменной - тогда по кр мере лишней ругани не будет если уже есть лишние записи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 07:46 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:11 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
можно и так Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:22 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Падонакможно и так Не понял твоего поста? Куда ты ему предлагаешь запихнуть такой блок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:24 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
В триггере each row можно поступить проще Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:26 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Sxak Падонакможно и так Не понял твоего поста? Куда ты ему предлагаешь запихнуть такой блок? да хоть в табличный триггер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:26 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Ты все-таки сначала попробуй Да и вставляй не по одной строке, а хотя бы по 2 ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:27 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровТы все-таки сначала попробуй Да и вставляй не по одной строке, а хотя бы по 2 ;-) это кому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:30 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
ПадонакВ триггере each row можно поступить проще Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:32 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Падонак[quot Sxak]дурень, ты со мной письками мерица решыл чтоли? На себя посмотри. Интересно здесь модераторы есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:37 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровТы все-таки сначала попробуй Да и вставляй не по одной строке, а хотя бы по 2 ;-) Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:38 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
На ходу подметки рвешь Падонак В триггере each row можно поступить проще Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:40 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
ПадонакНу-ну А теперь прежде чем дурнями кидаться посмотри то же самое да с тем триггером на каждую строчку который ты писал. Кстати такой же (тот который работетат а не тот что фор ич роу) который ты тут только что написал я тут до тебя запостил.... Не писал ты триггров ето видно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:40 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровНа ходу подметки рвешь Так ты предметно пиши, о чем говоришь, я предложил два варианта один (даже два первых) потабличный, другой (третий) построчный так ты о третьем писал или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:42 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Sxak Падонак[quot Sxak]дурень, ты со мной письками мерица решыл чтоли? На себя посмотри. Интересно здесь модераторы есть?Вчера модератор вежливо сделал этой паскуде замечание. Так она и модератора облаяла. Чувствует свою безнаказанность, собака. В этоим форуме модераторов почти не видно - А ЖАЛЬ Такое паскудство надо пресекать на корню - отключением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:45 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Падонак Вячеслав ЛюбомудровНа ходу подметки рвешь Так ты предметно пиши, о чем говоришь, я предложил два варианта один (даже два первых) потабличный, другой (третий) построчный так ты о третьем писал или как?Он предметно и написал. И я написал. Попиши триггеры познакомишься с ошибкаим типа "... изменяется триггер ф-ция может не заметить етого...." забыл уже точный текст ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:45 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
А заодно побалуйся с табличным триггером в разных сессиях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:46 |
|
||
|
Задачка
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровТы все-таки сначала попробуй Да и вставляй не по одной строке, а хотя бы по 2 ;-) Да, с построчным я погорячился. Моя ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2005, 08:49 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=33318697&tid=1956403]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 307ms |

| 0 / 0 |
