powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / IBExpert. Каскадное удаление.
15 сообщений из 15, страница 1 из 1
IBExpert. Каскадное удаление.
    #38799854
005ms00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, необходимо из бд, состоящей из более чем двухсот таблиц удалить данные за определенный период. Но присваивая отдельно каждому ключу Каскадное удаление (On Delete Rule: CASCADE), уходит много времени. Можно ли разом всеv ключам этой базы данных присвоить Каскадное удаление ?

Я новичок. Может для вас это просто.

Спасибо.
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38799864
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
005ms00,

можно, но не нужно

005ms00Я новичок. Может для вас это просто.

у нас таких задач не возникает.
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38799879
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
005ms00,

а потом - обратно?
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38799885
005ms00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, обратно ничего не надо. У меня в базе информация за несколько лет. Все что было до 2013 го я хочу удалить. Но этому мешают другие таблицы с которыми есть связь. Вот я и хочу разом всем ключам таблицы присвоить Каскадное удаление
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38799888
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
005ms00 У меня в базе информация за несколько лет.
У кого угодно, но только не у тебя. Разработчик наглеет или ваше руководство решило сэкономить?
В любом случае, стоит таки найти того, кто имеет непосредственное отношение к разработке структуры бд...
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38799891
005ms00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо разработчик. В настройках отдельно каждого ключа я прописываю каскадное удаление. Но стаким количеством таблиц это занимает много времени. Вот я и спрашиваю можно ли это как то применить ко всей бд, а не отдельно в настройках каждого ключа?
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38799893
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
005ms00можно ли это как то применить ко всей бд
нет, никак нельзя. кроме того, излишними каскадами ты можешь убить нужную информацию.
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38799895
ZeroMQ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
005ms00,

а если документы связаны без ключа? А если связь - циклическая?

Руками делай.
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38799937
005ms00
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно. Спасибо всем.
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38800099
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
005ms00,

предлагаю такую схему:
1. получаешь из базы скрипт, isql -x a.db >sql.txt
2. из скрипта удаляешь все, что не начинается с alter table ....
3. определяешь все справочные таблицы. Убираешь все FK, которые ссылаются на справочные таблицы. Тебе же не надо, чтобы при удалении записи из справочника, например, какого-то клиента, удалились каскадно все заказы, которые делал этот клиент?
4. Проверяешь, что таблицы оставшихся FK действительно содержат записи "по датам".
5. Для всех этих fk добавляешь в конце on delete cascade.
6. применяешь этот скрипт на базе
7. начинаешь чистить таблицы
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38800101
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
005ms00,

вдогонку - я бы использовал какой-нибудь case-инструмент, чтобы быстрее определить, какие таблицы справочные, как таблицы взаимосвязаны, и т.п. Импортнул базу из скрипта, поудалял лишние таблицы, совмещая с пунктом 3 из сообщения выше, потом действовал бы по оставшимся в модели таблицам.

Правда, как уже сказал ZeroMQ, FK могут быть не у всех таблиц, это от разработчиков исходной БД зависит.

p.s. еще между пунктами 5 и 6 забыл удаление FK перед их воссозданием с on delete cascade.
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38800420
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Одному мне не очень ясно, какая проблема во времени выполнения разовой операции?
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38800454
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А одному мне интерессно, задлянафига эти телодвижения?

005ms00, если разработчик утверждает, что "база тормозит", потому что "данных много" - либо смените его, либо отправьте учиться.
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38800571
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutalкакая проблема во времени выполнения разовой операции?
ну чего трахаться, думать, где чего надо включить, выключить. Хочется же на кнопочку нажать, и чтобы сразу все сделалось.
...
Рейтинг: 0 / 0
IBExpert. Каскадное удаление.
    #38800596
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дубль. под удаление. закрыто.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / IBExpert. Каскадное удаление.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]