Конференция "Базы" » не могу создать тригер [D7, Fireberd]
 
  • hahol_64_rus (26.04.08 15:07) [0]
    пишу програмку с БД
    в ней всего то 3 таблички (организации люди сотрудники)(firm,people,bind)
    в таблички сотрудники у мя всего 2 столбца cod_firm  и cod_people
    соответственно такие же есть в таблице люди и организации
    так вот сам вопрос .....
    при удлении человека мне надо удалить его из сотрудников ....
    как реализовать пока не совсем понимаю (начинающий)  
    я так понимаю  нада сделать триггер . . .  а какой
    пытался чет сделать но получилось ток вот это .....

    create trigger tad_people for people
    after delete
    as
       begin
         if ((select count(*) from bind where cod_people = old.cod_people) <> 0 ) then
          begin
            delete from bind where bind.cod_people = old.cod_people;
          end

       end^

    че не правильно
    код не работает
  • DrPass © (26.04.08 15:10) [1]
    Во-первых, не after delete, а before delete
    Во-вторых, достаточно просто delete from bind where bind.cod_people = old.cod_people; без всяких select count(*)
    В-третьих, тут можно вообще без триггера обойтись, добавив внешний ключ с опцией on delete cascade
  • hahol_64_rus (26.04.08 15:27) [2]
    <<on delete cascade>>

    емае совсем забыл

    спасибо агромное .....
 
Конференция "Базы" » не могу создать тригер [D7, Fireberd]
Есть новые Нет новых   [134432   +19][b:0][p:0]