Die Gründe für den Fehler beim Hinzufügen von Fremdschlüsseln in MySQL: 1. Das Feld des Fremdschlüssels stimmt nicht mit dem Typ des zugehörigen Feldes überein. 2. Der Fremdschlüsselname wird wiederholt. 3. Der Fremdschlüssel ist nicht indiziert. 4. Der Fremdschlüssel hat einen Standardwert; 5. Syntaxfehler.
Ursachenanalyse:
(Empfohlenes Tutorial: MySQL-Video-Tutorial)
Die erste Situation: Das Feld des Fremdschlüssels stimmt nicht mit dem Typ des zugehörigen Felds überein (einschließlich der Nichtübereinstimmung des Codierungsformats).
Der zweite Fall: Der Name des Fremdschlüssels ist ein vorhandener Schlüsselwert und der Name muss eindeutig sein.
Der dritte Fall: Die durch die MySQL-Engine verursachte Fremdschlüsselerstellung kann nicht gespeichert werden oder funktioniert nicht, die allgemeine Standard-Engine von MySQL Es ist Myisam und Myisam kann keine Fremdschlüssel erstellen.
Die vierte Situation: Der Fremdschlüssel, den Sie erstellen möchten, ist nicht indiziert oder kein Primärschlüssel. Wenn es sich nicht um einen Primärschlüssel handelt, müssen Sie einen Index dafür erstellen.
Fünfte Situation: Die Aktion des Fremdschlüssels ist beim Löschen auf Null gesetzt oder beim Aktualisieren auf Null gesetzt, aber das Feld der zugehörigen Tabelle ist nicht auf Null gesetzt, was zu einem Konflikt führt.
Sechster Fall: Es gibt Unterschiede zwischen Primärschlüssel 1, Primärschlüssel 2 und Primärschlüssel 3 in der von Navicat festgelegten Tabelle. Primärschlüssel 1 kann nicht kaskadiert aktualisiert (gelöscht) werden (CASCADE)
Siebter Fall: Fremdschlüssel vorhanden ist ein Standardwert, der Konflikte verursacht
Der achte Fall: Aufgrund des fehlenden Indexes für den gemischten Schlüsselwert müssen Sie einen separaten Index dafür beantragen
Der neunte Fall: beim Erstellen eines Fremdschlüssels in der SQL-Anweisung , die Syntax zum Erstellen oder Ändern ist falsch
Verwandte Empfehlungen: MySQL-Tutorial
Das obige ist der detaillierte Inhalt vonWas ist der Grund für den Fehler beim Hinzufügen von Fremdschlüsseln zu MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!