Mengapa Saya Mendapat Ralat Kunci Asing MySQL 1215: \'Tidak boleh menambah kekangan kunci asing\'?

Susan Sarandon
Lepaskan: 2024-11-25 14:08:13
asal
821 orang telah melayarinya

Why Am I Getting MySQL Foreign Key Error 1215:

Menyelesaikan Masalah Ralat Kunci Asing MySQL: 1215

Apabila cuba menambah kekangan kunci asing dalam MySQL, anda mungkin menghadapi Kod Ralat: 1215 yang menunjukkan "Tidak boleh menambah kekangan kunci asing (kunci asing)." Ralat ini biasanya berlaku disebabkan oleh ketidakpadanan jenis data atau isu struktur.

Ketidakpadanan Jenis Data

Salah satu punca yang mungkin ialah ketidakpadanan dalam jenis data antara lajur yang merujuk kepada kunci asing dan lajur yang dirujuk. Sebagai contoh, jika lajur ClassLeader dalam jadual kelas mempunyai jenis data VARCHAR(255) manakala lajur ID pelajar yang dirujuk dalam jadual pelajar ialah INT, kekangan kunci asing akan gagal. Jenis data kedua-dua lajur mestilah sama.

Isu Struktur

Jika jenis data sepadan, isu itu mungkin terletak pada percanggahan struktur antara jadual. Terutama:

  • Jadual yang dirujuk (pelajar dalam kes ini) mesti wujud.
  • Lajur yang dirujuk (ID pelajar) mesti wujud dalam jadual yang dirujuk.
  • Yang dirujuk lajur (ID pelajar) hendaklah menjadi kunci utama atau kunci unik bagi jadual yang dirujuk (walaupun dalam MySQL, indeks boleh memadai).

Contoh

-- Create student table
CREATE TABLE student (
  studentID int NOT NULL AUTO_INCREMENT,
  lastName varchar(255),
  firstName varchar(255),
  PRIMARY KEY (studentID)
);

-- Create class table
CREATE TABLE class (
  classID int NOT NULL AUTO_INCREMENT,
  nameClass varchar(255),
  classLeader int,  -- Change to INT to match studentID type
  FOREIGN KEY (classLeader) REFERENCES student(studentID),
  PRIMARY KEY (classID)
);
Salin selepas log masuk

Kunci Asing lwn. Kunci

Kunci asing tidak dipertimbangkan kunci tradisional (seperti kunci utama atau unik) yang mengenal pasti baris dalam jadual secara unik. Sebaliknya, tujuan utama mereka adalah untuk memastikan integriti rujukan dan mengekalkan hubungan antara jadual. Dengan menguatkuasakan kunci asing, anda boleh mengelakkan ketidakkonsistenan dan data yatim.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Kunci Asing MySQL 1215: \'Tidak boleh menambah 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