![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А как вообще каскадно удалять данные? [D6, MSSQL]
Arazel © (2005-03-01 16:06:00)Наверное по ID или как?
Shirson (2005-03-02 08:11:00) [1]>Arazel
В EM, открываешь главную таблицу в Design table, открываешь Table and Indexes, выбираешь закладку Relationships.
В ней создаёшь Foreign ключи и отмечаешь галочками
х Enforce relationship for INSERTs and UPDATEs
х Cascade Update Related Fields
х Cascade Delete Related Fields
При удалении записи из главной таблицы, автоматом удаляются все связанные с ней записи из таблиц по Foreign key.
Desdechado (2005-03-01 20:46:00) [2]2 Fay
- почему?
- а где принесет?
Anatoly Podgoretsky (2005-03-01 19:58:00) [3]Anatoly Podgoretsky © (01.03.05 16:39) [4]
Я думаю он выдержит, не раздвоится.
Fay (2005-03-01 19:26:00) [4]2 Arazel © (01.03.05 16:06)
Подход [2] под MSSQL счастья не принесёт.
MU (2005-03-01 16:48:00) [5]2 Anatoly Podgoretsky ©
хороший, жизненный совет, ведущий к раздвоению личности
Anatoly Podgoretsky (2005-03-01 16:39:00) [6]Настроить ссылочную целостность, никакие триггера или процедуры не трубуются. За этим обратиться к администратору базы.
Ega23 (2005-03-01 16:25:00) [7]Теоретически так:
пишешь триггер на удаление, удаляешь все строки во всех таблицах, которые форейны ни данную запись имеют. Также во всех таблицах, которые имеют форейны ни исходную, пишешь триггеры на удаление, удаляешь все записи во всех таблицах, которые имеют форейны на таблицы, которые имеют форейны на исходную. В свою очередь, во всех таблицах, которые имеют форейны на таблицы, которые имеют форейны на исходную также пишешь триггера на удаления ..... (ну, короче, рекурсивный обход графа).
Потом в Enterprize Manager'е удаляешь одну строчку из исходной таблицы, и у тебя грохается вся база.
После чего идёшь к начальнику с банкой вазелина.
Desdechado (2005-03-01 16:16:00) [8]когда объявляешь внешний ключ, можно указать ON DELETE CASCADE
Sergey13 (2005-03-01 16:08:00) [9]Это ламмерский подход. Реальные пацаны по KOD удаляют.