Я управляю примерно двадцатью базами данных mysql интернет-магазина на Magento, но я только что понял, что на каком-то внешнем ключе не хватало 250 таблиц!Мне удалось сгенерировать команды sql для добавления внешнего ключа, например
ALTER TABLE 'catalog_category_entity_datetime'
ADD FOREIGN KEY ('entity_id') REFERENCES 'catalog_category_entity' ('entity_id')
ON DELETE CASCADE
ON UPDATE CASCADE;
, но выполнение sql завершилось неудачно, поскольку во всех таблицах есть устаревшие строки, я знаю, что могу сделать это вручную с помощью другой команды sql длякаждая таблица похожа на
DELETE FROM 'catalog_category_entity_datetime'
where 'entity_id' NOT IN(select 'entity_id' from 'catalog_category_entity');
, но это больно и очень опасно, если в таблицу попадает ошибка.
Я хочу знать, есть ли команда для внешнего ключа, например для уникального индекса
ALTER IGNORE TABLE tmp_table ADD UNIQUE INDEX dupidx (field);
что удаляет устаревшие строки перед добавлением внешнего ключа?
Спасибо