Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat MySQL 150: Kegagalan Kekangan Utama Asing?
MySQL Errno 150: Kegagalan Kekangan Kunci Asing
Apabila cuba mencipta kekangan kunci asing, pengguna mungkin menghadapi Erorno 150. Kunci asing kekangan memastikan integriti data dengan merujuk medan dalam jadual lain, memaksa medan yang dirujuk untuk wujud dalam jadual sumber.
Punca Potensi: Percanggahan Jenis Data
Satu punca biasa Errorno 150 ialah percanggahan dalam jenis data antara lajur yang dirujuk dalam jadual anak (Bahagian) dan lajur kunci utama dalam jadual yang dirujuk (Pengajar).
Contoh:
create TABLE Instructors ( ... ID int(10), ... );
create table Sections ( ... Instructor_ID varchar(10), ... FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID) ... );
Dalam contoh ini, lajur ID dalam jadual Pengajar ditakrifkan sebagai integer, manakala Instructor_ID lajur dalam jadual Bahagian ditakrifkan sebagai rentetan. Perbezaan dalam jenis data ini menghalang kekangan kunci asing daripada diwujudkan.
Penyelesaian:
Untuk menyelesaikan isu ini, pastikan jenis data lajur yang dirujuk dalam kedua-dua meja sepadan. Dalam contoh di atas, tukar Instructor_ID menjadi jenis data integer:
create table Sections ( ... Instructor_ID int(10), ... );
Punca Potensi Lain:
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat MySQL 150: Kegagalan Kekangan Utama Asing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!