Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich beim Erstellen einer Fremdschlüsseleinschränkung den MySQL-Fehler 1005 (Fehlernummer: 150)?

Warum erhalte ich beim Erstellen einer Fremdschlüsseleinschränkung den MySQL-Fehler 1005 (Fehlernummer: 150)?

Mary-Kate Olsen
Freigeben: 2024-12-06 11:48:20
Original
613 Leute haben es durchsucht

Why Am I Getting MySQL Error 1005 (errno: 150) When Creating a Foreign Key Constraint?

Fehlercode: 1005. Tabelle kann nicht erstellt werden ... (Fehlernummer: 150)

Bei Ihrem Versuch, eine Fremdschlüsseleinschränkung zwischen den Tabellen sira_no und metal_kod zu erstellen , sind Sie auf den Fehlercode 1005 gestoßen, der darauf hinweist, dass aufgrund der Fehlernummer keine Tabelle erstellt werden konnte 150.

Dieser Fehler entsteht aufgrund einer falschen Primärschlüsselreferenz in Ihrem Code. Beim Definieren einer Fremdschlüsselbeziehung muss das referenzierte Feld in der übergeordneten Tabelle vorhanden sein, dem Datentyp und der Größe des Fremdschlüsselfelds entsprechen und über einen Index verfügen oder ein Primärschlüssel sein.

Schritte zur Fehlerbehebung :

  1. Felddefinitionen prüfen: Stellen Sie sicher, dass die METAL_KODU-Felder in beiden Tabellen identische Datentypen haben und Größen (z. B. sollten beide VARCHAR(4) und nicht VARCHAR(5) sein), einschließlich signierter oder nicht signierter Eigenschaften. Überprüfen Sie auch die Groß-/Kleinschreibung.
  2. Erstellen Sie einen Index: Stellen Sie sicher, dass das referenzierte METAL_KODU-Feld in der Tabelle „metal_kod“ einen Index hat. Ohne einen Index kann die Fremdschlüsseleinschränkung nicht eingerichtet werden.
  3. Tabellentypen prüfen: Beide an der Beziehung beteiligten Tabellen müssen die InnoDB-Speicher-Engine verwenden, um Fremdschlüsseleinschränkungen zu unterstützen.
  4. Fremdschlüsselnamen prüfen: Stellen Sie sicher, dass der Name Ihres Fremdschlüssels (METAL_KODU) kein Duplikat eines vorhandenen ist Schlüssel.
  5. Nullwerte verarbeiten: Wenn das Feld METAL_KODU in der übergeordneten Tabelle auf NOT NULL gesetzt ist und Sie in der Fremdschlüsseleinschränkung ON DELETE SET NULL angegeben haben, ändern Sie eine der Spalteneigenschaften oder das Kaskadenverhalten.
  6. Zeichensatz und Sortierung: Überprüfen Sie, ob der Zeichensatz und die Sortierungseinstellungen für beide Tabellen übereinstimmen und die Schlüsselspalten.
  7. Standardwerte entfernen: Wenn Ihre Fremdschlüsselspalte einen Standardwert hat (z. B. Standard=0), entfernen Sie ihn.
  8. Zusammengesetzte Schlüssel prüfen: Wenn das Feld METAL_KODU Teil eines zusammengesetzten Schlüssels in der übergeordneten Tabelle ist, erstellen Sie einen separaten Index für dieses Feld, um den Fremdschlüssel zu unterstützen Einschränkung.
  9. Syntax überprüfen: Überprüfen Sie Ihre ALTER TABLE-Anweisung noch einmal und stellen Sie sicher, dass die Feldnamen korrekt eingegeben sind.
  10. Fremdschlüssellänge: Stellen Sie sicher, dass der Name Ihres Fremdschlüssels die maximale Länge von 64 Zeichen nicht überschreitet.

Indem Sie diese Potenziale berücksichtigen Bei Problemen können Sie den Fehlercode 1005 beheben und die Fremdschlüsselbeziehung zwischen den Tabellen sira_no und metal_kod erfolgreich herstellen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Erstellen einer Fremdschlüsseleinschränkung den MySQL-Fehler 1005 (Fehlernummer: 150)?. 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