Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
Нужно задать для таблицы следующее условие: значение вставляемое в поле VP.CODE_VP должно содержаться в поле KBK таблицы SP_VP(которая собственно и создана для проверки допустимости вставляемых в таблицу VP значений). Если это условие не выполняется, то данная запись не должна быть вставлена. Для проверки решил создать триггер. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 14:34 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
SIGNAL SQSTATE ... http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0004232.htm при этом выбрасывается исключение. Если надо отвергать "тихо", можно сделать VIEW (чтобы вставлять в него) и на него повесить триггер INSTEAD, где и принимать решение о вставке в собственно таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 14:42 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. Кстати, ведь можно и просто FOREIGN KEY описать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 15:07 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaКстати, ведь можно и просто FOREIGN KEY описать.Да, на самом деле достаточно FOREIGN KEY. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 16:30 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
Всё же хочется до конца разобраться с триггером. Выдаёт ошибку: Код: plaintext 1. Подозреваю, что дело в этом Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 16:46 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
To Viktor: А ссылку не дадите по поводу подобного использования view? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 17:16 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
XEugeneВсё же хочется до конца разобраться с триггером. Выдаёт ошибку: Код: plaintext 1. Подозреваю, что дело в этом Код: plaintext 1. Да, http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0000931.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 08:02 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
TORTTo Viktor: А ссылку не дадите по поводу подобного использования view? Я такое видел в одной чужой системе на Oracle. Для каждой таблицы T они делали CREATE VIEW VT AS SELECT * FROM T. Из клиентских программ обращались только ко view, а не к таблицам. Понятно, что в общем случае таким view триггеры не нужны, поскольку они updateable. При нужде же для VT писались триггеры INSTEAD OF (UPDATE или DELETE или INSERT) Код: plaintext 1. 2. 3. 4. 5. Это широкоизвестный (для ораклистов) способ обхода проблем, связанных с тем, что таблица "мутирует". Для DB2 в принципе тоже может быть полезным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 08:14 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
To Victor: Просто по терминам уточню... "Мутирует" - это значит изменяет свою структуру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 09:12 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
Только содержимое ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 10:06 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
To Victor: Тогда если честно не понял, что за порблемы такие связанная с "мутацией"....:( Это как раз из разряда целостности и ограничений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 10:10 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо, с триггером тоже всё получилось. Работает естественно совершенно идентично FOREIGN KEY, но выглядит более приятно за счёт того, что можно задать своё сообщение об ошибке :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 10:19 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
Мысли вслух.... С внешним ключом БД на мой взгляд работает быстрее, чем с триггером.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 11:16 |
|
||
|
триггер на вставку, как запретить вставку записи не удовлетворяющей условию?
|
|||
|---|---|---|---|
|
#18+
В триггере такой-то таблицы пытаетесь обратиться к самой таблице - получаете ошибку "таблица мутирует". Обычное дело для Oracle, но при некоторых обстоятельствах можно получить аналогичное и на DB2. Триггер на VIEW позволяет обратиться до того, как таблица реально изменилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2007, 11:40 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34389688&tid=1604729]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 315ms |

| 0 / 0 |
