Mengapa Saya Mendapat Ralat 'Kekangan Kunci Asing Gagal' Apabila Menggugurkan Jadual dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-11-05 12:34:02
asal
618 orang telah melayarinya

Why Am I Getting a

"Kekangan Kunci Asing Bogus Gagal" Enigma: Meneroka Ralat Tidak Dijangka

Apabila melaksanakan pernyataan DROP TABLE pada jadual kawasan, pengguna boleh menghadapi ralat misteri: "Tidak boleh memadam atau mengemas kini baris induk: kekangan kunci asing gagal." Isu yang kelihatan membingungkan ini timbul walaupun selepas bersungguh-sungguh mengalih keluar semua jadual lain dengan rujukan kunci asing ke kawasan.

Menyelidiki butiran jadual kawasan, ia mempunyai kunci utama (area_id), kunci unik (nombre_area_UNIQUE), dan koleksi lajur bukan nol. Memandangkan jadual InnoDB direka bentuk untuk menghalang kekangan kunci asing merentas skema yang berbeza, kehadiran kunci asing daripada jadual yang tidak wujud menjadi satu teka-teki.

Walau bagaimanapun, pokok isu terletak pada perisian khusus yang digunakan. Apabila menggunakan Pelayar Pertanyaan MySQL atau phpMyAdmin, ciri yang ketara timbul: setiap pertanyaan memulakan sambungan baharu. Keanehan ini memaksa pengguna untuk merangkumi keseluruhan siri pernyataan drop dalam satu pertanyaan.

Untuk membetulkan keadaan dengan berkesan, urutan pernyataan berikut boleh digunakan:

<code class="sql">SET FOREIGN_KEY_CHECKS=0;
DROP TABLE my_first_table_to_drop;
DROP TABLE my_second_table_to_drop;
SET FOREIGN_KEY_CHECKS=1;</code>
Salin selepas log masuk

Dengan menggunakan SET FOREIGN_KEY_CHECKS=0, kekangan kunci asing dilumpuhkan buat sementara waktu, memudahkan pemadaman jadual sasaran. Selepas itu, mendayakan semula kekangan dengan SET FOREIGN_KEY_CHECKS=1 menyediakan lapisan perlindungan tambahan. Oleh itu, ralat berulang dielakkan, membolehkan pengguna berjaya menjatuhkan jadual yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Kekangan Kunci Asing Gagal' Apabila Menggugurkan Jadual dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan