Главная страница
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.039 c
8-43691
MetalFan
2003-11-11 17:44
2004.03.14
Размер(высоту,ширину) Видеофайла


8-43704
Lizard
2003-11-14 01:43
2004.03.14
Помогите зеленому.


3-43310
Night Cold
2004-02-11 17:51
2004.03.14
Перемещение данных


1-43422
x_x_x
2004-03-04 08:37
2004.03.14
Как можно корректно распечатать файл .prn из Windows


4-43971
andruxin
2003-12-29 17:34
2004.03.14
как задать название приложение в taskbare