Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Триггер before delete  [new]
Зурбаган
Member

Откуда:
Сообщений: 71
Есть таблица MAINT с 5 полями (a,b,c,d,e) и есть полный дубль этой таблицы MAINT2 с 5 полями (a,b,c,d,e).
Информация в обоих таблицам идентична.
На таблицу MAINT я навесил триггер before delete, в котором прописал

delete from maint2 where a:=old.a and b:=old.b and c:=old.c and d:=old.d and e:=old.e and ;

Беда в том, что почему то после удаления записи в таблице MAINT, соответсвующая запись в MAINT2 не удаляется.
Почему?

p.s. материализованная вьюха для данного случая мне не подходит, надо сделать именно через триггер.
7 ноя 19, 17:24    [22011714]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2012
Зурбаган,

кто-то часом не NULL?

.....
stax
7 ноя 19, 17:33    [22011728]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
Зурбаган
Member

Откуда:
Сообщений: 71
Stax,

Конечно, в полях иногда и null присутствует. Из-за этого? nvl применять?
7 ноя 19, 17:59    [22011766]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9635
Зурбаган

Беда в том, что почему то после удаления записи в таблице MAINT, соответсвующая запись в MAINT2 не удаляется.
Почему?


Наводка: как минимум одно :old NULL.

SY.
7 ноя 19, 18:10    [22011799]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2012
Зурбаган
Stax,

Конечно, в полях иногда и null присутствует. Из-за этого? nvl применять?


Вам решать


....
stax
7 ноя 19, 18:12    [22011802]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9635
Зурбаган


Конечно, в полях иногда и null присутствует. Из-за этого? nvl применять?


delete from maint2 where (a:=:old.a or (a is null and :old.a is null)) ...

SY.
7 ноя 19, 18:55    [22011855]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 29402
Зурбаган
p.s. материализованная вьюха для данного случая мне не подходит
Выучи первичный ключ сперва. Не говоря уже о null.

SY
a:=:old.a or (a is null and :old.a is null)
decode(a, :old.a, '=') = '='
7 ноя 19, 19:28    [22011876]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9635
Elic,

Только если а никогда не будет '='.

SY.
7 ноя 19, 19:30    [22011880]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 29402
SY
Elic,

Только если а никогда не будет '='.
Ну нельзя же так, Соломон…
7 ноя 19, 19:31    [22011881]     Ответить | Цитировать Сообщить модератору
 Re: Триггер before delete  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 9635
Elic
Ну нельзя же так, Соломон…


Упс...

SY.
7 ноя 19, 19:33    [22011882]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить