-
Доброго времени суток! Уважаемые посоветуйте как правельно написать тригер который срабатывает перед удалением записи из таблицы. Задача тирега проверить есть ли во второй таблице ссылка на данные которые удаляются и если есть то вывесли исключение. я пишу так
CREATE OR ALTER TRIGGER TBL_BOOK_BD FOR TBL_BOOK
ACTIVE BEFORE DELETE POSITION 0
as
begin
if (not EXISTS(select OLD.ID_BOOK From tbl_vydacha where tbl_vydacha.data_vozvrata = 'null' and old.id_book = tbl_vydacha.id_book )) then
exception err_spisanie ;
end.
у меня тригер срабатывает при удалении любой записи из таблицы. С нетерпением жду ответов.
-
> [0] 6ruse (03.09.10 11:48)
А просто внешний ключ повесить не пробовал?
-
> tbl_vydacha.data_vozvrata = 'null'
Интересно, с какой радости поле data_vozvrata сделано текстовым ?
-
> есть ли во второй таблице ссылка на данные которые удаляются
> и если есть то вывесли исключение
> if (not EXISTS
Убрать not ?
-
>>Уважаемые посоветуйте как правельно написать тригер
Правильно надо писать "триггер".
-
> Задача тирега проверить есть ли во второй таблице ссылка
> на данные которые удаляются и если есть то вывесли исключение
Читать теорию о ссылочной целостности (вторичные ключи или foreign keys).
Они именно для этого и предназначены.
-
> Ega23 (21.09.2010 08:02:05) [5]
Ну так тут работать надо, это не пойдеть.
-
> Читать теорию о ссылочной целостности (вторичные ключи или
> foreign keys).Они именно для этого и предназначены.
это да, но видимо автор хочет показать осмысленное сообщение, а не типичное на буржуйском
автору:
убрать NOT
-
> >>Уважаемые посоветуйте как правельно написать тригер
> Правильно надо писать "триггер".
Правельно надо писать "правильно"