Rumah  >  Artikel  >  pangkalan data  >  Mengapa Saya Mendapat Ralat \"Tidak Dapat Menambah Kekangan Kunci Asing\" dalam MySQL?

Mengapa Saya Mendapat Ralat \"Tidak Dapat Menambah Kekangan Kunci Asing\" dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 17:44:29313semak imbas

Why Am I Getting the

Ralat Kekangan Kunci Asing: Memahami Punca dan Penyelesaian

Soalan berkenaan ralat yang dihadapi semasa mencipta jadual kursus dalam MySQL:

ERROR 1215 (HY000): Cannot add foreign key constraint

Ralat ini menunjukkan isu dengan kekangan kunci asing yang dinyatakan dalam pernyataan SQL. Kekangan kunci asing memastikan bahawa data dalam lajur kunci asing satu jadual (cth., kursus) merujuk data sedia ada dalam lajur kunci utama jadual lain (cth., jabatan).

Untuk menyelesaikan ralat ini dan berjaya mencipta jadual kursus, adalah penting untuk mengikuti garis panduan ini:

  • Enjin Pemadanan, Jenis Data dan Penyusunan:

    • Kedua-dua yang dirujuk medan (dept_name) dalam jadual jabatan dan medan kunci asing (dept_name) dalam jadual kursus mesti mempunyai enjin yang sama, seperti InnoDB.
    • Medan mesti mempunyai jenis data yang sama, termasuk panjang. Contohnya, kedua-dua VARCHAR(20) atau INT(10) UNSIGNED.
    • Pengumpulan, yang menentukan pengekodan set aksara, juga harus sepadan. Biasanya, utf8 digunakan.
  • Keunikan Medan Rujukan:

    • Medan yang dirujuk oleh kunci asing (dept_name dalam jadual jabatan) mestilah unik. Ini memastikan bahawa setiap baris dalam jadual kursus boleh merujuk dengan betul baris dalam jadual jabatan.
  • BUKAN NULL Kekangan:

    • Jika anda telah menetapkan pilihan SET NULL dalam kekangan kunci asing, pastikan tiada satu pun lajur yang terlibat ditakrifkan sebagai BUKAN NULL.

Dengan mematuhi garis panduan ini , anda boleh mengelakkan ralat "Tidak boleh menambah kekangan kunci asing" dan mewujudkan integriti rujukan yang betul antara jadual kursus dan jabatan.

Nota Tambahan:

Melumpuhkan kunci asing semakan menggunakan SET FOREIGN_KEY_CHECKS=0 mungkin membenarkan anda mencipta jadual dengan kekangan yang salah, tetapi ia tidak disyorkan. Tetapan ini boleh menyebabkan ketidakkonsistenan data dan kerosakan pangkalan data.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \"Tidak Dapat Menambah Kekangan Kunci Asing\" dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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