Heim >Datenbank >MySQL-Tutorial >Warum erhalte ich den MySQL-Fehler 150: Fremdschlüssel-Einschränkungsfehler?
MySQL Errno 150: Foreign Key Constraint Failure
Beim Versuch, eine Fremdschlüsseleinschränkung zu erstellen, stoßen Benutzer möglicherweise auf Errorno 150. Ein Fremdschlüssel Die Einschränkung stellt die Integrität der Daten sicher, indem sie auf ein Feld in einer anderen Tabelle verweist und so erzwingt, dass das referenzierte Feld in der Quelle vorhanden ist Tabelle.
Mögliche Ursache: Datentypdiskrepanz
Eine häufige Ursache für Fehler Nr. 150 ist eine Diskrepanz in den Datentypen zwischen der referenzierten Spalte in der untergeordneten Tabelle (Abschnitte) und die Primärschlüsselspalte in der referenzierten Tabelle (Dozenten).
Beispiel:
create TABLE Instructors ( ... ID int(10), ... );
create table Sections ( ... Instructor_ID varchar(10), ... FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID) ... );
In diesem Beispiel ist die ID-Spalte in der Dozententabelle als Ganzzahl definiert, während die Instructor_ID Die Spalte in der Abschnittstabelle ist als Zeichenfolge definiert. Dieser Unterschied in den Datentypen verhindert, dass die Fremdschlüsseleinschränkung eingerichtet wird.
Lösung:
Um dieses Problem zu beheben, stellen Sie sicher, dass die Datentypen der referenzierten Spalten in beiden Tische passen. Ändern Sie im obigen Beispiel Instructor_ID in einen ganzzahligen Datentyp:
create table Sections ( ... Instructor_ID int(10), ... );
Andere mögliche Ursachen:
Das obige ist der detaillierte Inhalt vonWarum erhalte ich den MySQL-Fehler 150: Fremdschlüssel-Einschränkungsfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!