У меня есть набор таблиц InnoDB
, которые мне периодически нужно поддерживать, удаляя некоторые строки и вставляя другие. В некоторых таблицах имеются ограничения внешнего ключа, ссылающиеся на другие таблицы, поэтому это означает, что порядок загрузки таблицы важен. Чтобы вставить новые строки, не беспокоясь о порядке таблиц, я использую:
SET FOREIGN_KEY_CHECKS=0;
до, а затем:
SET FOREIGN_KEY_CHECKS=1;
после.
Когда загрузка будет завершена, я хочу проверить, что данные в обновленных таблицах по-прежнему содержат ссылочную целостность - что новые строки не нарушают ограничений внешнего ключа - но кажется, что нет способа сделать это.
В качестве теста я ввел данные, в которых я был уверен, что нарушены ограничения внешнего ключа, и после повторного включения проверок внешнего ключа mysql не выдал никаких предупреждений или ошибок.
Если бы я попытался найти способ указания порядка загрузки таблицы и оставил проверку внешнего ключа во время процесса загрузки, это не позволило бы мне загружать данные в таблицу с привязкой внешнего ключа с привязкой, поэтому это не будет приемлемым решением.
Есть ли способ заставить InnoDB проверить ограничения внешних ключей таблицы или базы данных?