Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich den Fremdschlüsseleinschränkungsfehler 1215?

Warum erhalte ich den Fremdschlüsseleinschränkungsfehler 1215?

Mary-Kate Olsen
Freigeben: 2024-11-25 09:57:11
Original
718 Leute haben es durchsucht

Why Am I Getting a Foreign Key Constraint Error 1215?

Fremdschlüsseleinschränkungsfehler: 1215

Beim Versuch, Datenbanktabellen mit Fremdschlüsseleinschränkungen zu erstellen, kann der Fehlercode 1215 auftreten. Dies weist auf ein Problem beim Hinzufügen einer Fremdschlüsseleinschränkung hin, häufig aufgrund einer Nichtübereinstimmung des Datentyps.

Detaillierte Analyse:

Die Fehlermeldung deutet darauf hin, dass die Fremdschlüsselspalte classLeader in ist Die Klassentabelle kann nicht auf den Primärschlüssel studentID in der Schülertabelle verweisen, da ihre Datentypen nicht übereinstimmen. Im bereitgestellten Datenbank-Setup ist classLeader ein VARCHAR-Typ (String), während studentID ein INT-Typ (Ganzzahl) ist. Fremdschlüsselreferenzen erfordern einen passenden Datentyp für die Datenintegritätsvalidierung.

Alternativen:

Um den Fehler zu beheben, sollte der Datentyp von classLeader in INT oder umgekehrt geändert werden. abhängig von den Geschäftsanforderungen. Wenn das Speichern tatsächlicher Schülernamen in classLeader von entscheidender Bedeutung ist, kann eine zusätzliche Join-Tabelle oder ein eindeutiger Index für die Spalten „Vorname“ und „Nachname“ der Schülertabelle verwendet werden, um die Datenkonsistenz sicherzustellen.

Füllen von Tabellen mit Fremdschlüsseln :

Tabellen mit Fremdschlüsseleinschränkungen haben eine bestimmte Füllreihenfolge. Die Primärtabelle (Student) sollte vor der referenzierenden Tabelle (Klasse) gefüllt werden, da es sonst zu Verstößen gegen Fremdschlüsseleinschränkungen kommt. Beim Ausfüllen der Klassentabelle muss der classLeader-Wert auf eine gültige studentID in der Schülertabelle verweisen.

Natur der Fremdschlüssel:

Fremdschlüssel sind keine Primär- oder eindeutigen Schlüssel selbst. Sie werden verwendet, um eine Beziehung zwischen zwei Tabellen herzustellen und sicherzustellen, dass die Datenintegrität erhalten bleibt. In diesem Fall stellt der Fremdschlüssel „classLeader“ sicher, dass jeder Klasse eine gültige studentID zugewiesen ist, wodurch die Datenkonsistenz zwischen den beiden Tabellen gewahrt bleibt.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich den Fremdschlüsseleinschränkungsfehler 1215?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage