Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Каскадное удаление в Delphi, Interbase   Найти похожие ветки 

 
Andrew2004   (2004-02-12 07:33) [0]

Есть база, работающая через InterBase. В этой базе возьмем 3 таблицы: "Инвентарные номера", "Книги", "Авторы". Так вот, допустим, я удаляю запись из таблицы "Авторы" -> тогда надо удалить все записи из таблицы "Книги", которые ссылаются на удаленного автора, этих книг может быть много -> но и из таблицы "Инв. номера" надо удалить все инвентарные номера, которые содержат ссылку на удаляемую книгу, этих инвентарных номеров также может быть очень много. Т.е. между талицами "Инв. номера" и "Книги" отношение "1-ко-мног.", а между "Книги" и "Авторы" - "мног.-ко-мног.". Как в этом случае реализовать каскадное удаление.
Вот такая заморочка :)).
Естественно это можно сделать длинным способом. Но как это сделать покороче SQL-запросами?
Спасибо всем, кто ответит!!!


 
Вованчик ©   (2004-02-12 08:26) [1]

триггеры на удаление написать в каждой таблице


 
Sergey13 ©   (2004-02-12 08:27) [2]

А зачем вообще удалять автора? Цензура? 8-)
Авторы в твоем случае - это типичный справочник, а удалять из справочника - дурной тон. Списывать (удалять) надо только книги.
ИМХО.


 
Deniz ©   (2004-02-12 08:32) [3]

Если в базе правильно прописаны внешние ключи по связям:

alter table Книги
add constraint FK_Книги
foreign key (ID_Автора)
references Авторы(ID)
on delete CASCADE

то вообще ничего делать не надо, все само собой удаляется.
Но можно и триггер повесить на таблицу.

create trigger Авторы_BD before delete position 0 as
begin
delete from Книги where Книги.ID_Автора = old.ID
end

ID - пк для авторов в табл Авторы


 
Johnmen ©   (2004-02-12 09:29) [4]

>Т.е. между талицами "Инв. номера" и "Книги" отношение "1-ко-мног.",

Т.е. один инв. номер для нескольких книг ???


 
Вованчик ©   (2004-02-12 09:32) [5]


> Johnmen © (12.02.04 09:29) [4]

наоборот - для одной книги несколько инвентарных номеров


 
Johnmen ©   (2004-02-12 09:39) [6]

>Вованчик © (12.02.04 09:32) [5]

В данном контексте это "мног.-ко-1"
:)


 
Вованчик ©   (2004-02-12 09:43) [7]

:)


 
Anatoly Podgoretsky ©   (2004-02-12 09:48) [8]

Sergey13 © (12.02.04 08:27) [2]
Автор умер, книги в печку.


 
Andrew   (2004-02-12 20:31) [9]

Всем спасибо... И за юмор тоже... :))
Если есть еще дельные предложение - пишите.

За дельный ответ - отдельное спасибо Deniz(у)©... :))



Страницы: 1 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
14-43782
Карелин Артем
2004-02-17 17:11
2004.03.14
Как установить длинный пароль на асю?


1-43557
AlexanderVasjuk
2004-03-03 18:02
2004.03.14
Предложите компонент а ля Панель Outlook


7-43903
and75
2003-12-22 13:55
2004.03.14
Печать TImage


14-43867
VolanD2002
2004-02-19 15:37
2004.03.14
Надо


1-43470
TAV
2004-02-29 18:43
2004.03.14
Как прочитать из конца файла указанное количество строк?