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

Mary-Kate Olsen
Lepaskan: 2024-10-26 17:44:29
asal
312 orang telah melayarinya

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
Salin selepas log masuk

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!