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

Откуда: Краснодар
Сообщений: 570
Приветствие!

Можно ли сделать такой триггер, который on delete не делал delete строки, а делал её update.
В общем можно заместить delete update'ом? Или это невозможно?
11 июл 06, 14:26    [2866249]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116156
А чего же невозможного, возможно.

Только представление сделайте

INSTEAD- OF Triggers
11 июл 06, 14:28    [2866267]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
monomakh
Member

Откуда: Краснодар
Сообщений: 570
Т.е. возможно для вьюх, но не возможно для таблиц напрямую.
Мне это понадобится для всех таблиц рабочих смех. Получается придется создавать вьюхи для всех таблиц, пересаживать формы на вьюхи вместо таблиц...

Вообще нам нужно, чтобы записи физически не удалялись, а лишь помечались удаленными.
11 июл 06, 14:53    [2866455]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
Гостик
Guest
просто так преобразовать операцию удаление в обновление в тригере нельзя
попробуйте извратиться с insert-ом при delete
11 июл 06, 14:55    [2866469]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116156
monomakh
Т.е. возможно для вьюх, но не возможно для таблиц напрямую.
Мне это понадобится для всех таблиц рабочих смех. Получается придется создавать вьюхи для всех таблиц, пересаживать формы на вьюхи вместо таблиц...

В принципе да, если бы не

monomakh

Вообще нам нужно, чтобы записи физически не удалялись, а лишь помечались удаленными.


Что сей сон значит ? Пометка на удаление и является update ...
11 июл 06, 14:56    [2866482]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
Takurava
Member

Откуда:
Сообщений: 1776
А в формах нельзя заменить триггер KEY-DELREC на свой, который будет не удалять, а помечать?
11 июл 06, 15:00    [2866512]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
monomakh
Member

Откуда: Краснодар
Сообщений: 570
Понятно, что пометка и есть update. Но хотелось бы, чтобы эта пометка ставилась при delete.
11 июл 06, 15:01    [2866530]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
PPA
Member

Откуда: Караганда -> Липецк
Сообщений: 812
monomakh
Вообще нам нужно, чтобы записи физически не удалялись, а лишь помечались удаленными.


А на кой это нужно?
Ведь потом прийдется везде фильтровать по этому флажку...
Переноси записи на delete-те в таблицу - лог удаленных записей.
(триггера + скрипты создания таблиц можно сгенерировать из словаря)
11 июл 06, 15:01    [2866533]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
dmidek
Member

Откуда: Киев - Дортмунд
Сообщений: 116156
monomakh
Понятно, что пометка и есть update. Но хотелось бы, чтобы эта пометка ставилась при delete.

А. ОК, перепутал, что вместо чего.

Тогда да, генерируйте линейку представлений.
Если приложение менять трудно / невозможно по сравнению с базой, то:
- переносите таблицы в новую схему
- в старой схеме генерируете представления со "старыми" именами таблиц.
- пишете / генерируете триггеры INSTEAD-OF.

Приложение ничего об этом не узнает :)
11 июл 06, 15:05    [2866557]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
monomakh
Member

Откуда: Краснодар
Сообщений: 570
PPA, это нужно для синхронизации(репликации) самопально написанной моими коллегами.

dmidek - интересный вариант с переносом в другую схему... спасибо за предложенный вариант
11 июл 06, 15:10    [2866584]     Ответить | Цитировать Сообщить модератору
 Re: Триггер, который на удаление(вместо) делал обновление  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
insert в триггере с автономной транзакцией
а если серьезно, этого делать НЕ НАДО
11 июл 06, 16:53    [2867247]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить