Это похоже на действительно плохую идею.Независимо от того, что вы делаете, у вас будет период, когда ссылочная целостность не обеспечивается в вашей базе данных.Затем вы возвращаете FK обратно на место, и, к сожалению, кто-то вставил недопустимую строку.
Кроме того, ALTER TABLE
- это оператор DDL, поэтому при его выполнении будет выполнена любая работа до этого момента.Вы потеряете возможность отката, если что-то пойдет не так в другом месте вашей транзакции.
Можете ли вы просмотреть план объяснения, чтобы понять, почему ваше заявление DELETE
занимает так много времени?