Heim >Datenbank >MySQL-Tutorial >MySQL-Fehler 1005: Kann ein Primärschlüssel ein Fremdschlüssel sein und wie behebe ich Probleme mit Fremdschlüsseleinschränkungen?

MySQL-Fehler 1005: Kann ein Primärschlüssel ein Fremdschlüssel sein und wie behebe ich Probleme mit Fremdschlüsseleinschränkungen?

DDD
DDDOriginal
2024-12-05 20:31:11302Durchsuche

MySQL Error 1005: Can a Primary Key Be a Foreign Key, and How Do I Fix Foreign Key Constraint Issues?

MySQL-Fremdschlüsselfehler 1005: Primärschlüssel als Fremdschlüssel

Kann ein Primärschlüssel auch ein Fremdschlüssel sein?

Nein, es ist nicht möglich, in MySQL einen Primärschlüssel als Fremdschlüssel zu definieren. Ein Primärschlüssel identifiziert Datensätze innerhalb einer Tabelle eindeutig, während ein Fremdschlüssel auf Datensätze in einer anderen Tabelle verweist. Die Kombination dieser beiden Rollen würde zu zirkulären Einschränkungen führen.

Fehlercode 1005: Tabelle konnte nicht erstellt werden

Der Fehler „Fehler 1005: Tabelle 'dbimmobili.condoni' konnte nicht erstellt werden (Fehlernr : 150)“ weist darauf hin, dass MySQL die Tabelle aufgrund eines Problems mit dem Fremdschlüssel nicht erstellen kann Einschränkungen.

Fehlender Index für referenzierte Tabelle

Die Meldung „Fehler in der Fremdschlüsseleinschränkung der Tabelle dbimmobili/valutazionimercato“ deutet darauf hin, dass ein fehlender Index das Problem verursacht. MySQL erfordert, dass die referenzierte Tabelle über einen Index verfügt, der die im Fremdschlüssel angegebenen Spalten abdeckt.

Lösung

Erstellen Sie einen Index für die referenzierte Tabelle (dbimmobili.Immobile) für die Spalten (ComuneImmobile, ViaImmobile , CivicoImmobile, InternoImmobile):

CREATE INDEX ix_ComuneViaCivicoInterno ON dbimmobili.Immobile (ComuneImmobile, ViaImmobile, CivicoImmobile, InternoImmobile);

Dieser Index stellt sicher, dass MySQL effizient Übereinstimmungen finden kann Datensätze in der dbimmobili.Immobile-Tabelle, wenn die dbimmobili.condoni-Tabelle auf sie verweist.

Das obige ist der detaillierte Inhalt vonMySQL-Fehler 1005: Kann ein Primärschlüssel ein Fremdschlüssel sein und wie behebe ich Probleme mit Fremdschlüsseleinschränkungen?. 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