Rumah > pangkalan data > tutorial mysql > Mengapa Pemadaman Rekod Kerja Menyebabkan 'Pelanggaran Kekangan Kunci Asing'?

Mengapa Pemadaman Rekod Kerja Menyebabkan 'Pelanggaran Kekangan Kunci Asing'?

Linda Hamilton
Lepaskan: 2025-01-14 16:27:48
asal
177 orang telah melayarinya

Why Does Deleting a Job Record Cause a

Pelanggaran Kekangan Kunci Asing: "Tidak boleh memadam atau mengemas kini baris induk"

Memadamkan rekod kerja boleh mencetuskan ralat "Tidak boleh memadam atau mengemas kini baris induk: kekangan kunci asing gagal" (#1451). Ini berlaku disebabkan oleh hubungan kunci asing antara jadual jobs dan advertisers.

Memahami Kekangan Utama Asing

Kekangan kunci asing memastikan integriti rujukan. Lajur jobs jadual advertiser_id mesti sentiasa sepadan dengan advertiser_id yang sah dalam jadual advertisers. Ini menghalang rekod yatim piatu. Ralat timbul apabila rekod kerja dipautkan kepada pengiklan dan pemadaman kerja itu akan meninggalkan rujukan yang tergantung.

Penyelesaian

1. Melumpuhkan Pemeriksaan Kunci Asing buat sementara waktu:

Pembetulan terpantas ialah melumpuhkan semakan kunci asing buat sementara waktu, memadamkan kerja, dan kemudian mendayakannya semula:

<code class="language-sql">SET FOREIGN_KEY_CHECKS=0;
DELETE FROM `jobs` WHERE `job_id` = 1 LIMIT 1;
SET FOREIGN_KEY_CHECKS=1;</code>
Salin selepas log masuk

Kaedah ini memintas kekangan tetapi penting untuk mendayakan semula semakan selepas itu untuk integriti data.

2. Melaksanakan Pemadaman Lata:

Penyelesaian yang lebih mantap ialah mengubah suai kekangan kunci asing untuk menggunakan pemadaman berlatarkan. Ini secara automatik memadamkan rekod pengiklan yang berkaitan apabila kerja dialih keluar:

<code class="language-sql">ALTER TABLE `advertisers`
ADD CONSTRAINT `advertisers_ibfk_1` FOREIGN KEY (`advertiser_id`) REFERENCES `jobs` (`advertiser_id`) ON DELETE CASCADE;</code>
Salin selepas log masuk

Pemadaman bertingkat mengekalkan ketekalan data tanpa memerlukan kekangan sementara melumpuhkan. Pilih pendekatan ini untuk reka bentuk pangkalan data yang lebih bersih dan boleh diselenggara.

Atas ialah kandungan terperinci Mengapa Pemadaman Rekod Kerja Menyebabkan 'Pelanggaran Kekangan Kunci Asing'?. 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