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

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

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

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

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

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

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

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

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

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

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

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

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

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


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