MySQL / InnoDB с ограничениями FK: поиск таблиц / строк, затронутых каскадным удалением - PullRequest
3 голосов
/ 15 июля 2011

У меня есть база данных MySQL / InnoDB с ограничениями FK. Если я удаляю строку в «корневой» таблице, в зависимых таблицах соответствующие строки будут удалены.

Как я могу показать, что было удалено или хотя бы какие таблицы были затронуты?

Есть ли какой-нибудь простой способ или мне нужно написать инструмент для сравнения до и после?

Будет ли журнал репликации показывать, что происходит?

1 Ответ

4 голосов
/ 15 июля 2011

Нет, нет способа показать что было удалено Нет, он не будет отображаться в журнале репликации

Единственное, о чем я могу думать, это запросить information_schema представления, чтобы увидеть, какие таблицы имеют ограничения FK в зависимости от корневой таблицы.

SELECT DISTINCT
  TABLE_NAME FROM REFERENTIAL_CONSTRAINTS 
WHERE 
  CONSTRAINT_SCHEMA = 'yourDatabase'
  AND REFERENCED_TABLE_NAME = 'rootTable'
  AND DELETE_RULE = 'CASCADE'
...