私の答えは
一般的なMySQLと同様に、多くの行を挿入、削除、または更新するSQLステートメントで、InnoDBはUNIQUEおよびFOREIGNKEY制約を行ごとにチェックします。外部キーチェックを実行する場合、InnoDBは、参照する必要のある子レコードまたは親レコードに共有行レベルのロックを設定します。 InnoDBは外部キー制約をすぐにチェックします。チェックはトランザクションコミットに延期されません。 SQL標準によると、デフォルトの動作は遅延チェックである必要があります。つまり、制約は、SQLステートメント全体が処理された後にのみチェックされます。 InnoDBが遅延制約チェックを実装するまで、外部キーを使用してそれ自体を参照するレコードを削除するなど、いくつかのことは不可能です。
製図板に戻ります。