Wygląda na to, że moja odpowiedź jest tutaj ...
Podobnie jak ogólnie MySQL, w instrukcji SQL, która wstawia, usuwa lub aktualizuje wiele wierszy, InnoDB sprawdza ograniczenia UNIQUE i FOREIGN KEY wiersz po wierszu. Podczas sprawdzania klucza obcego InnoDB ustawia współdzielone blokady na poziomie wiersza na rekordach podrzędnych lub nadrzędnych, na które musi się zwrócić. InnoDB natychmiast sprawdza ograniczenia klucza obcego; czek nie jest odroczony do zatwierdzenia transakcji. Zgodnie ze standardem SQL, domyślnym zachowaniem powinno być sprawdzanie odroczone. Oznacza to, że ograniczenia są sprawdzane dopiero po przetworzeniu całej instrukcji SQL. Dopóki InnoDB nie zaimplementuje odroczonego sprawdzania ograniczeń, niektóre rzeczy będą niemożliwe, na przykład usunięcie rekordu, który odwołuje się do siebie za pomocą klucza obcego.
Wróć do deski kreślarskiej.