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

Вниз

Как удалить записи   Найти похожие ветки 

 
apl   (2006-05-30 08:46) [0]

Есть достаточно сложная база данных, пара сотен таблиц, представления, десятки процедур. Необходимо удалить некоторые записи. Если у записи в главной таблице нет подчиненных записей вообще, то запись удаляется при помощи ADOCommand. Если подчиненные записи есть, то не удаляет. Причем кол-во подчиненных записей есть не во всех таблицах.
Как вычислить (определить) все таблицы в которых нужно удалять записи, и, я подозреваю, что удалять нужно в определенном порядке от подчиненных таблиц к основной.


 
ORMADA ©   (2006-05-30 08:55) [1]

через системные таблицы посмотри зависимости таблиц
НО! лучше делать это самому т.к. непонятно куда могу привести такие КАСКАДНЫЕ удаления!

сделай сторпроц и вызывай его с необходимыими параметрами...
главное не забудь про транзанкцию
т.к. удалять надо всё сразу или ничего!

>то запись удаляется при помощи ADOCommand
хошь удалю при помощи АдоКвери?
ExecSql есть и в квери и в команд!

>я подозреваю, что удалять нужно в определенном порядке от подчиненных таблиц к основной.
правильно мыслишь!


 
apl   (2006-05-30 09:35) [2]

А где в системных таблицах-то посмотреть что от чего зависит?


 
ЮЮ ©   (2006-05-30 09:41) [3]

и, я подозреваю, что удалять нужно в определенном порядке от подчиненных таблиц к основной.

А я подозреваю, что удалять можно только в соответствии с бизнес-логикой.
Если где-то в справочнике нашлась корявая запись вовсе не следует, что нужно убивать записи в другой таблице, которые на неё сослались. Ну а если именно бизнесс-логика требует такого удаления, то следует знать и помнить структуру БД и прописать удаление связанных записей хоть в процедурах, хоть в триггерах, а не строит универсального убийцу записей.


 
apl   (2006-05-30 10:42) [4]

так мне и надо восстановить эту бизнес-логику
В своих разработках понятно гораздо проще, а если разгребаешь чужое наследство?


 
Sergey13 ©   (2006-05-30 10:50) [5]

2[4] apl   (30.05.06 10:42)
>а если разгребаешь чужое наследство?
То выгодно воспользоваться CASE инструментами типа ERWin и реинжинирингом базы.


 
ЮЮ ©   (2006-05-30 10:59) [6]

В EM создаешь диаграму, кидаешь нужную таблицу, задаешь нужный уровень вложенности и начинаешь разгребать таблицы, улавливая бизнес-логику.



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

Форум: "Базы";
Текущий архив: 2006.08.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
15-1152521318
Untermensch
2006-07-10 12:48
2006.08.06
Кто нибудь встречал нормальный современный Property Editor ?


15-1152129575
Petr V. Abramov
2006-07-05 23:59
2006.08.06
Птичку жалко :)


3-1149152464
RomanH
2006-06-01 13:01
2006.08.06
Параметризированные запросы IBQuery


3-1148922995
Katyyha
2006-05-29 21:16
2006.08.06
Курсач


2-1153147531
asail
2006-07-17 18:45
2006.08.06
Запрос SQL





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский