Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat Ralat Kekangan Utama Asing (Kod Ralat 1215)?

Mengapa Saya Mendapat Ralat Kekangan Utama Asing (Kod Ralat 1215)?

Mary-Kate Olsen
Lepaskan: 2024-11-25 01:43:11
asal
806 orang telah melayarinya

Why Am I Getting a Foreign Key Constraint Error (Error Code 1215)?

Ralat Kekangan Kunci Asing: Kod Ralat 1215

Apabila cuba menambah kekangan kunci asing pada jadual, kod ralat 1215, " Tidak boleh menambah kekangan kunci asing (kunci asing)", boleh berlaku. Ralat ini menunjukkan ketidakpadanan dalam jenis data antara lajur yang dirujuk dan lajur kunci asing.

Analisis Ralat:

Dalam contoh yang diberikan, ralat mungkin berpunca daripada berikutan kekangan kunci asing:

FOREIGN KEY (classLeader) REFERENCES student(studentID)
Salin selepas log masuk

Di sini, lajur ClassLeader mempunyai jenis data VARCHAR(255), manakala lajur studentID dalam jadual pelajar yang dirujuk mempunyai jenis data INT. Jenis data lajur kunci yang dirujuk dan asing mesti sepadan.

Penyelesaian Alternatif:

Untuk menyelesaikan ralat ini, pastikan bahawa jenis data lajur kunci yang dirujuk dan asing perlawanan. Dalam kes ini, lajur ClassLeader boleh ditukar untuk mempunyai jenis data INT agar sepadan dengan lajur studentID.

Mengisi Jadual dengan Kekunci Asing:

Apabila mengisi jadual yang mempunyai kekangan kunci asing, tidak mungkin untuk memasukkan data secara langsung ke dalam medan kunci asing. Sebaliknya, data mesti dimasukkan terlebih dahulu ke dalam jadual yang dirujuk (cth., jadual pelajar). Medan kunci asing (mis., ID kelas) kemudiannya boleh diisi dengan nilai kunci utama yang sepadan daripada jadual yang dirujuk.

Kunci Asing sebagai Kunci:

Kunci asing ialah dianggap sebagai sejenis kunci, khususnya kunci logik. Ia bukan kunci utama atau kunci unik, tetapi ia memainkan peranan penting dalam memastikan integriti data dengan mengekalkan hubungan antara jadual. Kunci asing menguatkuasakan integriti rujukan, yang menghalang ketidakkonsistenan dalam data dengan memastikan bahawa rekod dalam jadual anak (cth., kelas) mempunyai rekod yang sepadan dalam jadual induk (cth., pelajar).

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Kekangan Utama Asing (Kod Ralat 1215)?. 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