Heim > Datenbank > MySQL-Tutorial > Hauptteil

Warum erhalte ich den MySQL-Fehler 150: Fremdschlüssel-Einschränkungsfehler?

DDD
Freigeben: 2024-11-19 09:55:03
Original
620 Leute haben es durchsucht

Why Am I Getting MySQL Error 150: Foreign Key Constraint Failure?

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),
  ...
);
Nach dem Login kopieren
create table Sections (
  ...
  Instructor_ID varchar(10),
  ...
  FOREIGN KEY (Instructor_ID) REFERENCES Instructors(ID)
  ...
);
Nach dem Login kopieren

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),
  ...
);
Nach dem Login kopieren

Andere mögliche Ursachen:

  • Primärschlüssel nicht definiert: Die referenzierte Tabelle (Ausbilder) verfügt möglicherweise nicht über einen Primärschlüssel definiert.
  • Datenintegritätsverletzung: Eine vorhandene Zeile in der untergeordneten Tabelle (Abschnitte) kann einen Fremdschlüsselwert enthalten, der in der referenzierten Tabelle (Instruktoren) nicht vorhanden ist.
  • Falsche Syntax: Stellen Sie sicher, dass die Syntax für die FOREIGN KEY-Einschränkung korrekt ist, einschließlich ON DELETE und ON UPDATE Klauseln.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage