Форум: "Базы";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
ВнизТриггер ограничивающий удаление строк. Найти похожие ветки
← →
tomat (2002-12-18 12:07) [0]Зравствуйте!
Существует ли возможность с помощью триггера (или др. средств) запретить удалять строку (запись) в зависимости от значения столбца (поля).
Спасибо!
← →
Romkin (2002-12-18 12:09) [1]Можно, достаточно дать exception в нужный момент, и вся транзакция откатится. Ессно, before delete
← →
FreeLancer (2002-12-18 12:14) [2]BEFORE DELETE
...
AS
BEGIN
IF (Pole = "Bad Value") THEN EXCEPTION MyException;
END
или
...
AS
BEGIN
IF (Pole = "Bad Value") THEN EXIT; /* По-тихому */
END
← →
tomat (2002-12-18 12:40) [3]CREATE TRIGGER TEST_TRIGGER FOR TEST
ACTIVE
BEFORE DELETE
AS
BEGIN
IF ( OLD.CODE = 0 ) THEN EXIT;
END^
Ошибочка, в чём косяк не пойму!
EXIT по английски!
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown.
EXIT.
← →
Sergey Masloff (2002-12-18 12:44) [4]EXIT
Jumps to the final END statement in the procedure. Available in stored procedures only.
~~~~~~~~~~~~~~~~~
← →
tomat (2002-12-18 12:49) [5]И что без исключения ника нельзя?!
← →
Romkin (2002-12-18 13:02) [6]Никак, да и exit имеет полностью тот же смысл, что и в Delphi, и запись удалится. На клиенте обычно сообщение и требуется, почему нельзя удалить, поэтому и exception
← →
Reindeer Moss Eater (2002-12-18 13:04) [7]И что без исключения ника нельзя?!
Можно.
Например делать Insert удаляемой записи в триггере на BEFORE DELETE :)
← →
Romkin (2002-12-18 13:06) [8]Извращение...
← →
Reindeer Moss Eater (2002-12-18 13:16) [9]Ну триггер, обламывающий DELETE - это не меньшее извращение
← →
Johnmen (2002-12-18 13:26) [10]>Reindeer Moss Eater (18.12.02 13:16)
Ничего подобного !
>tomat
Возбуждать ексепшн есть стандартное, абсолютно правильное решение.
← →
Reindeer Moss Eater (2002-12-18 13:39) [11]>Johnmen ©
Я вот что имел ввиду. Если триггер знает о всех строках, которые удалять нельзя, то я бы например не давал гранты на удаление из самой таблицы никому. Создал бы View, включающий все строки, которые можно удалять. И запросы на удаление делал бы к просмотру
← →
Alexandr (2002-12-18 13:42) [12]давайте не будет тут про обновляемый view.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c