Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер before delete / 10 сообщений из 10, страница 1 из 1
07.11.2019, 17:24
    #39886341
Зурбаган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Есть таблица 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. материализованная вьюха для данного случая мне не подходит, надо сделать именно через триггер.
...
Рейтинг: 0 / 0
07.11.2019, 17:33
    #39886350
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Зурбаган,

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

.....
stax
...
Рейтинг: 0 / 0
07.11.2019, 17:59
    #39886379
Зурбаган
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Stax,

Конечно, в полях иногда и null присутствует. Из-за этого? nvl применять?
...
Рейтинг: 0 / 0
07.11.2019, 18:10
    #39886407
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Зурбаган

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


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

SY.
...
Рейтинг: 0 / 0
07.11.2019, 18:12
    #39886409
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Зурбаган
Stax,

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


Вам решать


....
stax
...
Рейтинг: 0 / 0
07.11.2019, 18:55
    #39886449
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Зурбаган


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


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

SY.
...
Рейтинг: 0 / 0
07.11.2019, 19:28
    #39886466
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Зурбаган
p.s. материализованная вьюха для данного случая мне не подходит
Выучи первичный ключ сперва. Не говоря уже о null.

SY
Код: plsql
1.
a:=:old.a or (a is null and :old.a is null)

Код: plsql
1.
decode(a, :old.a, '=') = '='
...
Рейтинг: 0 / 0
07.11.2019, 19:30
    #39886469
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Elic,

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

SY.
...
Рейтинг: 0 / 0
07.11.2019, 19:31
    #39886470
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
SY
Elic,

Только если а никогда не будет '='.
Ну нельзя же так, Соломон…
...
Рейтинг: 0 / 0
07.11.2019, 19:33
    #39886471
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер before delete
Elic
Ну нельзя же так, Соломон…


Упс...

SY.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Триггер before delete / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]