Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Вниз

Каскадное удаление в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
1-43524
Edu
2004-02-16 07:01
2004.03.14
Ввод функции на Delphi


14-43871
Rouse_
2004-02-19 16:19
2004.03.14
Эх, поприкалываться чтоли под конец рабочего дня? ;)


6-43728
SJ-79
2004-01-05 16:14
2004.03.14
E-mail


11-43408
Vox
2003-06-26 01:17
2004.03.14
KOLMD5


14-43882
тихий вовочка
2004-02-19 15:29
2004.03.14
осенние цыплята и Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский