Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не могу создать тригер [D7, Fireberd]


hahol_64_rus ©   (2008-04-26 15:07:00) 

пишу програмку с БД
в ней всего то 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^

че не правильно
код не работает


hahol_64_rus   (2008-04-26 15:27:00) [1]

<<on delete cascade>>

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

спасибо агромное .....


DrPass   (2008-04-26 15:10:00) [2]

Во-первых, не after delete, а before delete
Во-вторых, достаточно просто delete from bind where bind.cod_people = old.cod_people; без всяких select count(*)
В-третьих, тут можно вообще без триггера обойтись, добавив внешний ключ с опцией on delete cascade


Наверх

Титульная страница Поиск, карта сайта Написать письмо