Если внешний ключ равен ON DELETE CASCADE
, то удаление повторяющихся строк также приведет к удалению зависимых строк, например, если у вас есть таблица customers
и таблица orders
, а также внешний ключ, такой как ALTER TABLE orders ADD FOREIGN KEY customer_id REFERENCES customers (id) ON DELETE CASCADE
, удаление клиента также приведет к удалению заказов этого клиента. Аналогично, если внешний ключ имеет ON DELETE SET NULL
, то ордера не будут удалены, но их значения customer_id
будут установлены в NULL.
Если ни одно из этих действий не является желаемым, создайте запрос, который разрешает конфликты внешнего ключа, изменяя столбцы внешнего ключа так, чтобы они ссылались на строку, которую вы хотите сохранить (т. Е. Обновляете все заказы, чтобы ссылаться на недвойственных клиентов) , а затем удалите поврежденные строки.
Еще одна альтернатива - временно отключить проверку внешних ключей, но это приведет к несовместимости базы данных, поэтому я бы не рекомендовал это.