Heim >Datenbank >MySQL-Tutorial >Warum gibt MySQL den Fehler 150 aus: Fremdschlüssel-Referenztyp stimmt nicht überein?

Warum gibt MySQL den Fehler 150 aus: Fremdschlüssel-Referenztyp stimmt nicht überein?

DDD
DDDOriginal
2024-11-19 18:06:03476Durchsuche

Why Does MySQL Throw Error 150: Foreign Key Reference Type Mismatch?

MySQL-Fehler 150: Fremdschlüssel-Referenztyp stimmt nicht überein

Beim Versuch, eine Datenbank mit mehreren Tabellen zu erstellen, ist ein Benutzer auf einen Fehler gestoßen: „ Fehlercode: 1005. Tabelle „336_project.sections“ kann nicht erstellt werden (Fehlernummer: 150).“ Dieser Fehler hängt mit der Verwendung von Fremdschlüsseln zusammen.

Bei näherer Betrachtung stellte sich heraus, dass die Datentypen der zugehörigen Spalten nicht übereinstimmten. In diesem Fall wurde die Spalte „Course_Code“ in der Tabelle „Sections“ als VARCHAR definiert, während die entsprechende Spalte in der Tabelle „Courses“ als INT definiert wurde.

MySQL erfordert Fremdschlüssel und Primärschlüssel Schlüssel in verwandten Tabellen haben übereinstimmende Datentypen. Dieser Fehler tritt auf, wenn die Datentypen nicht übereinstimmen, auch wenn die Namen und die Syntax der Fremdschlüsseleinschränkungen korrekt erscheinen.

Lösung:

Um diesen Fehler zu beheben, Stellen Sie sicher, dass die Datentypen der zugehörigen Spalten in den übergeordneten und untergeordneten Tabellen identisch sind. In diesem Beispiel sollte der Datentyp der Spalte „Course_Code“ sowohl in den Tabellen „Sections“ als auch „Courses“ in VARCHAR geändert werden.

Sobald die Datentypen ordnungsgemäß übereinstimmen, gilt die Fremdschlüsseleinschränkung wird erzwungen und die Tabellenerstellung gelingt ohne Fehler.

Das obige ist der detaillierte Inhalt vonWarum gibt MySQL den Fehler 150 aus: Fremdschlüssel-Referenztyp stimmt nicht überein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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