Можно в триггере BEFORE INSERT отменить операцию записи?
Можно в триггере BEFORE INSERT отменить операцию записи?
Можно в триггере BEFORE INSERT отменить операцию записи при возникновении определённых условий? Если это возможно то можно примерчик. Или какойто другой путь есть ?
Смотри доку на Exception и пример( http://www.ibase.ru/devinfo/customex.htm ), не совсем в тему но
Re: Можно в триггере BEFORE INSERT отменить операцию записи?
Возбуждая в этом триггере exception и обрабатывая его там, откуда инициирован insert. На клиенте - try ... except, если инициирован из хранимой процедуры, то, соответственно, when ... do.I_one писал(а):Можно в триггере BEFORE INSERT отменить операцию записи при возникновении определённых условий? Если это возможно то можно примерчик. Или какойто другой путь есть ?
кстати, я запамятовал, что будет если
Код: Выделить всё
create trigger xxx on yyy
active after insert
as
begin
exception e;
when ... do
delete from yyy where id = new.id;
end
А чё бы ему не работать. Помнится я этот изврат кому-то уж пару лет назад предлагал со смайлами. Вот если в BD триггере проапдейтить ту же запись (свежеудалённую), то получался сурпризkdv писал(а):ну и как - работает? я просто тут другим занят, проверять совсем некогда.


kdv> ну и как - работает?
Работает, это я и имел виду говоря об "откате втихую". Никаких противоречивостей, вроде как, в этом нет.
Merlin> Помнится я этот изврат кому-то уж пару лет назад
Merlin> предлагал со смайлами
Почему со смайлами? Вполне прикольный трюк.
Merlin> Вот если в BD триггере проапдейтить ту же запись...
О, а это уже изврат.
Работает, это я и имел виду говоря об "откате втихую". Никаких противоречивостей, вроде как, в этом нет.
Merlin> Помнится я этот изврат кому-то уж пару лет назад
Merlin> предлагал со смайлами
Почему со смайлами? Вполне прикольный трюк.
Merlin> Вот если в BD триггере проапдейтить ту же запись...
О, а это уже изврат.
Я об этом пол-года назад в конфе писал, что можно, но не нужно:Можно в триггере BEFORE INSERT отменить операцию записи при возникновении определённых условий? Если это возможно то можно примерчик. Или какойто другой путь есть ?
- Делаем insert записи, а в триггере after insert тут-же и удаляем её-же.
Делаем update записи, а в триггере after update тут-же и вертаем в зад.
Делаем delete записи, а в триггере after delete тут-же вставляем её-же.
некоторая проверка полей, а то можно зациклиться

Игорь Ильинский