Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как создать триггер с проверкой по условию, со своим EXCEPTION (свое сообщ. на исключение)
|
|||
|---|---|---|---|
|
#18+
Подскажите кто-нибудь... Есть таблица ( t_customer ). В таблице есть поле ( c_num ), следующего вида 0105201715001. Это поле генерируется (день, месяц, год, час, 001-номер), в котором значения иногда могу дублироваться - если в течение 1 часа повторно сохранить документ с одинаковым номером. В этом случае БД Firebird показывает ошибку, т.к. срабатывает ограничение - созданный мною уникальный индекс ( UNQ3_T_CUSTOMER -> c_num ). Хочу обработать ошибку и выдать свое сообщение пользователю, вместо сообщения, выдаваемого БД по умолчанию. Для этого создал свое исключение ( UNQ3_T_CUSTOMER_EXCEPTION ). Теперь хочу добавить триггер с проверкой по условию, но не знаю как. Примерно делал так: as begin /*Поиск дубликатов номеров*/ select t_customer.c_num, count(t_customer.c_num) from t_customer group by t_customer.c_num having count(*) > 1 if (count > 1) then begin exception UNQ3_T_CUSTOMER_EXCEPTION; suspend; end end Но это не правильно. Зашел в тупик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 13:53 |
|
||
|
Как создать триггер с проверкой по условию, со своим EXCEPTION (свое сообщ. на исключение)
|
|||
|---|---|---|---|
|
#18+
Valdemarius, какой ещё suspend в триггере? Считать агрегаты в триггере противопоказано, особенно по той же самой таблице на которой триггер. Для таких задач лучше UNIQUE CONSTRAINT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 13:56 |
|
||
|
Как создать триггер с проверкой по условию, со своим EXCEPTION (свое сообщ. на исключение)
|
|||
|---|---|---|---|
|
#18+
Hello, Valdemarius! в таком виде это неработоспособно. лови ошибку на клиенте и выдавай ему соответствующий текст. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 13:58 |
|
||
|
Как создать триггер с проверкой по условию, со своим EXCEPTION (свое сообщ. на исключение)
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. Так не подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 14:48 |
|
||
|
Как создать триггер с проверкой по условию, со своим EXCEPTION (свое сообщ. на исключение)
|
|||
|---|---|---|---|
|
#18+
YuRock, ты в суть поста не вник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 14:50 |
|
||
|
Как создать триггер с проверкой по условию, со своим EXCEPTION (свое сообщ. на исключение)
|
|||
|---|---|---|---|
|
#18+
Hello, Yurock! You wrote on 30 мая 2017 г. 14:54:13: Yurock> exception UNQ3_T_CUSTOMER_EXCEPTION 'Моё сообщение об исключении'; > Так не подойдет?ещё раз, для упёртых: обеспечить целКостность на триггере (без весьма специфических телодвижений) НЕВОЗМОЖНО. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 14:55 |
|
||
|
Как создать триггер с проверкой по условию, со своим EXCEPTION (свое сообщ. на исключение)
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисYuRock, ты в суть поста не вник Да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 15:11 |
|
||
|
Как создать триггер с проверкой по условию, со своим EXCEPTION (свое сообщ. на исключение)
|
|||
|---|---|---|---|
|
#18+
Valdemarius, Можно на клиенте обрабатывать примерно так (для IBX): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. И не надо никаких триггеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 15:15 |
|
||
|
|

start [/forum/topic.php?fid=40&gotonew=1&tid=1561561]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 161ms |

| 0 / 0 |
