Heim >Datenbank >MySQL-Tutorial >MySQL-Fehler 150: Warum schlägt mein Fremdschlüssel fehl, obwohl die Spaltenlängen übereinstimmen?
MySQL Errno 150: Offenlegung der Fremdschlüsseldiskrepanz
Beim Versuch, Beziehungen zwischen Tabellen herzustellen, sind Sie auf einen schwer fassbaren Fremdschlüsselfehler gestoßen Code 150. Lassen Sie uns in die Feinheiten Ihres SQL-Skripts eintauchen, um die Ursache dafür zu ermitteln Problem.
Bei näherer Betrachtung kann der Fehler auf einen grundlegenden Unterschied in den Datentypen zwischen dem Fremdschlüssel und seiner referenzierten Spalte zurückgeführt werden. Innerhalb der Tabelle „Sections“ haben Sie die Spalte „Instructor_ID“ als „varchar(10)“ definiert, während der Primärschlüssel der referenzierten Tabelle „Instructors“ „ID“ mit dem Datentyp „varchar(10)“ ist. Obwohl die Längen übereinstimmen, sind die Datentypen unterschiedlich.
Diese Diskrepanz führt zu einer Nichtübereinstimmung zwischen den Spalten, die verknüpft werden sollten. MySQL erfordert, dass die Fremdschlüsselspalte mit dem Datentyp der referenzierten Primärschlüsselspalte übereinstimmt. In diesem Fall sollten Sie die Spalte „Instructor_ID“ in der Tabelle „Sections“ so ändern, dass sie mit dem Datentyp der Spalte „ID“ in der Tabelle „Instructors“ übereinstimmt, nämlich „varchar(10).“
Sobald Sie sichergestellt haben, dass der Fremdschlüsselspaltentyp mit dem referenzierten Primärschlüsselspaltentyp übereinstimmt, sollte MySQL in der Lage sein, die Fremdschlüsselbeziehung herzustellen, ohne dass der Fehler Errno 150 auftritt.
Das obige ist der detaillierte Inhalt vonMySQL-Fehler 150: Warum schlägt mein Fremdschlüssel fehl, obwohl die Spaltenlängen übereinstimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!