Rumah >pangkalan data >tutorial mysql >Mengapa Saya Tidak Boleh Menggugurkan Jadual dengan Kekangan Utama Asing Menggunakan Berbilang Pertanyaan?
Kekangan Kunci Asing Bogus Gagal
Apabila cuba menjatuhkan jadual bernama kawasan daripada pangkalan data, mesej ralat ditemui yang menunjukkan kunci asing kegagalan kekangan. Walaupun telah menjatuhkan semua jadual lain yang mempunyai hubungan utama asing dengan kawasan, kekangan itu terus berterusan.
Sebab Kemungkinan
InnoDB, enjin storan yang digunakan oleh pangkalan data, lazimnya tidak membenarkan kunci asing merujuk jadual di luar skema semasa. Oleh itu, adalah membingungkan mengapa kekangan utama asing masih menghalang pemadaman jadual kawasan.
Penyelesaian
Setelah siasatan lanjut, didapati bahawa alat pangkalan data tertentu, seperti MySQL Query Browser atau phpMyAdmin, buka sambungan baharu untuk setiap pertanyaan. Tingkah laku ini menghalang penyebaran perubahan merentas berbilang pertanyaan. Untuk menyelesaikan isu ini, adalah perlu untuk melaksanakan semua penyata drop dalam satu pertanyaan:
SET FOREIGN_KEY_CHECKS=0; -- Disable foreign key checks DROP TABLE my_first_table_to_drop; DROP TABLE my_second_table_to_drop; SET FOREIGN_KEY_CHECKS=1; -- Re-enable foreign key checks
Melumpuhkan semakan kunci asing membolehkan pemadaman jadual yang terlibat dalam perhubungan kunci asing tanpa mencetuskan ralat kekangan. Pembolehan semula semakan kunci asing seterusnya memastikan integriti pangkalan data untuk operasi masa hadapan.
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggugurkan Jadual dengan Kekangan Utama Asing Menggunakan Berbilang Pertanyaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!