Fehlercode: 1005. Tabelle kann nicht erstellt werden: Eine detaillierte Analyse
Wenn beim Erstellen eines Fremdschlüssels mit dem Fehlercode 1005 auftritt folgendes Skript:
ALTER TABLE sira_no
ADD CONSTRAINT METAL_KODU FOREIGN KEY(METAL_KODU)
REFERENCES metal_kod(METAL_KODU)
ON DELETE SET NULL
ON UPDATE SET NULL ;
Es ist wichtig, die zugrunde liegenden Gründe dafür zu verstehen Fehler.
Die Fehlermeldung „Tabelle 'ebs.#sql-f48_1a3' kann nicht erstellt werden (Fehlernummer: 150)“ weist normalerweise darauf hin, dass ein Problem mit der Primärschlüsselreferenz vorliegt. Um dieses Problem zu lösen, ist es wichtig sicherzustellen, dass:
-
Die Datentypen und Größen der Schlüsselfelder identisch sind:
Stellen Sie sicher, dass die Typen und Größen genau übereinstimmen. Beispielsweise sind INT(10) und BIGINT nicht kompatibel. Ebenso sollten SIGNED- und UNSIGNED-Felder entsprechend abgeglichen werden.
-
Relevante Felder verfügen über entsprechende Indizes:
Fremdschlüsselbeziehungen erfordern einen Index oder Primärschlüssel für das referenzierte Feld. Wenn dem referenzierten Feld ein Index fehlt, erstellen Sie einen, um die Einschränkung festzulegen.
-
Fremdschlüsselname ist eindeutig:
Doppelte Fremdschlüsselnamen können zu Fehlern führen. Stellen Sie sicher, dass der Fremdschlüsselname innerhalb der Datenbank eindeutig ist, indem Sie am Ende zufällige Zeichen hinzufügen.
-
Tabellen sind vom Typ InnoDB:
Fremdschlüsseleinschränkungen erfordern, dass beide beteiligten Tabellen InnoDB sind Tische. MyISAM-Tabellen können keine Fremdschlüssel unterstützen.
-
Kaskadenoptionen und Feld-Nullfähigkeit sind kompatibel:
Wenn die Aktionen ON DELETE oder ON UPDATE auf CASCADE gesetzt sind, darf das referenzierte Feld kein NOT haben NULL-Einschränkung.
-
Die Optionen für Zeichensatz und Sortierung sind konsistent:
Stellen Sie sicher, dass die Zeichensatz- und Sortierparameter sind sowohl für die Tabelle als auch für die Schlüsselspalten in der Beziehung identisch.
-
Standardwerte für Fremdschlüsselspalten sind nicht vorhanden:
Fremdschlüsselspalten sollten keine Standardwerte haben Werte definiert.
-
Zusammengesetzte Schlüssel mit separaten Indizes sind erforderlich:
Wenn das referenzierende Feld Teil eines Verbundes ist Schlüssel muss er über einen eigenen Index verfügen, der vom zusammengesetzten Index getrennt ist.
Eine gründliche Überprüfung der aufgeführten Ursachen und die Behebung etwaiger Unstimmigkeiten sollte den Fehlercode 1005 beheben. Weitere Einzelheiten finden Sie in der MySQL-Dokumentation zu Fehlernummer 1005 : Tabelle kann nicht erstellt werden.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich den MySQL-Fehlercode 1005: Tabelle kann nicht erstellt werden?. 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