2017-01-28 1 views
0

Я работаю с большой базой данных (более 250 таблиц), которая имеет много внешних ключей, но ни один из них не установлен в ON DELETE CASCADE. Я понимаю, что это означает, что мне нужно отказаться от ограничения внешнего ключа и воссоздать его. Это само по себе не так уж плохо. Но при 874 существующих ограничениях внешнего ключа это может занять много времени.Программно добавьте ON DELETE CASCADE к существующим ограничениям внешнего ключа для всех таблиц

У кого-нибудь есть предложения по автоматизации этого? Я разработчик PHP по профессии, но я открыт для любого решения на любом языке, о котором каждый может подумать.

ответ

0

Я думаю, вы можете сделать это программно. Когда необходимо удалить основной объект. Loop считал все строки во всех таблицах, в которых PK этой сущности является FK. Сначала удалите их. Затем удалите основную строку (сущность) в основной таблице. Сделайте это в транзакции. Я не знаю. Оба способа звучат слишком много беспорядка.

Смежные вопросы