Rumah > pangkalan data > tutorial mysql > Mengapa Saya Tidak Boleh Memadam Rekod Kerja: Pelanggaran Kekangan Utama Asing?

Mengapa Saya Tidak Boleh Memadam Rekod Kerja: Pelanggaran Kekangan Utama Asing?

Patricia Arquette
Lepaskan: 2025-01-14 16:17:44
asal
568 orang telah melayarinya

Why Can't I Delete a Job Record: Foreign Key Constraint Violation?

Ralat: Pelanggaran Kekangan Kunci Asing – Memadam Baris Induk

Percubaan untuk memadamkan rekod kerja (cth., DELETE FROM jobs WHERE job_id = 1 LIMIT 1;) mengakibatkan ralat #1451: "Tidak boleh memadam atau mengemas kini baris induk: kekangan kunci asing gagal". Ini berlaku kerana jadual advertisers mempunyai kunci asing yang merujuk kepada jobs jadual advertiser_id.

Skema Pangkalan Data:

Pangkalan data termasuk jadual ini:

  • advertisers:

    • advertiser_id (kunci utama)
    • name, password, email, address, phone, fax, session_token
    • Kekangan kunci asing advertisers_ibfk_1 merujuk jobs.advertiser_id
  • jobs:

    • job_id (kunci utama)
    • advertiser_id (kunci asing)
    • name, shortdesc, longdesc, address, time_added, active, moderated

Penyelesaian: Nyahaktifkan Kekangan Utama Asing buat sementara waktu

Penyelesaian melibatkan melumpuhkan sementara semakan kunci asing untuk membenarkan pemadaman, kemudian membolehkannya semula untuk mengekalkan integriti data:

<code class="language-sql">SET FOREIGN_KEY_CHECKS = 0;  -- Disable foreign key checks

DELETE FROM `jobs` WHERE `job_id` = 1 LIMIT 1; -- Delete the problematic job record

SET FOREIGN_KEY_CHECKS = 1;  -- Re-enable foreign key checks</code>
Salin selepas log masuk

Kaedah ini membolehkan pemadaman sambil mengekalkan integriti rujukan keseluruhan pangkalan data. Ingat untuk mempertimbangkan dengan teliti implikasi melumpuhkan semakan kunci asing dan hanya gunakan pendekatan ini apabila benar-benar perlu.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Memadam Rekod Kerja: Pelanggaran Kekangan Utama 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