Конференция "Базы" » ТРИГЕР [Firebird]
 
  • 6ruse (03.09.10 11:48) [0]
    Доброго времени суток! Уважаемые посоветуйте как правельно написать тригер который срабатывает перед удалением записи из таблицы. Задача тирега проверить есть ли во второй таблице ссылка на данные которые удаляются и если есть то вывесли исключение. я пишу так
    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.
    у меня тригер срабатывает при удалении любой записи из таблицы. С нетерпением жду ответов.
  • Sergey13 © (03.09.10 11:52) [1]
    > [0] 6ruse   (03.09.10 11:48)

    А просто внешний ключ повесить не пробовал?
  • Сергей М. © (03.09.10 12:02) [2]
    > tbl_vydacha.data_vozvrata = 'null'

    Интересно, с какой радости поле data_vozvrata сделано текстовым ?
  • Игорь Шевченко © (03.09.10 22:16) [3]

    > есть ли во второй таблице ссылка на данные которые удаляются
    > и если есть то вывесли исключение



    > if (not EXISTS


    Убрать not ?
  • Внук © (21.09.10 00:46) [4]
    >>Уважаемые посоветуйте как правельно написать тригер
     Правильно надо писать "триггер".
  • Ega23 © (21.09.10 08:02) [5]

    > Задача тирега проверить есть ли во второй таблице ссылка
    > на данные которые удаляются и если есть то вывесли исключение


    Читать теорию о ссылочной целостности (вторичные ключи или foreign keys).
    Они именно для этого и предназначены.
  • Anatoly Podgoretsky © (21.09.10 09:52) [6]
    > Ega23  (21.09.2010 08:02:05)  [5]

    Ну так тут работать надо, это не пойдеть.
  • Правильный$Вася (05.10.10 14:11) [7]

    > Читать теорию о ссылочной целостности (вторичные ключи или
    > foreign keys).Они именно для этого и предназначены.

    это да, но видимо автор хочет показать осмысленное сообщение, а не типичное на буржуйском

    автору:
    убрать NOT
  • SuperPuperSQL (07.10.10 15:13) [8]

    > >>Уважаемые посоветуйте как правельно написать тригер
    >  Правильно надо писать "триггер".

    Правельно надо писать "правильно"
 
Конференция "Базы" » ТРИГЕР [Firebird]
Есть новые Нет новых   [134431   +15][b:0][p:0]