Heim >Datenbank >navicat >So richten Sie Multi-Table-Links in Navicat für MySQL ein

So richten Sie Multi-Table-Links in Navicat für MySQL ein

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-08-05 09:28:4612261Durchsuche

So richten Sie Multi-Table-Links in Navicat für MySQL ein

Erstellen Sie eine Viele-zu-Viele-Beziehung zwischen zwei Tabellen: Die saubere Datentabelle (Clean_Data-Tabelle) und die Benutzertabelle (Benutzertabelle) stellen eine Viele-zu-Viele-Beziehung her. Wie in der Abbildung unten gezeigt:

So richten Sie Multi-Table-Links in Navicat für MySQL ein

1. Erstellen Sie eine Tabelle

und erstellen Sie drei Tabellen, die Tabelle „clean_data“ und den Benutzer table und die Beziehungstabelle zwischen den beiden Tabellen (clean_data_user Tabelle).

Die Tabellenstrukturen sind wie folgt:

So richten Sie Multi-Table-Links in Navicat für MySQL ein

So richten Sie Multi-Table-Links in Navicat für MySQL ein

So richten Sie Multi-Table-Links in Navicat für MySQL ein

Verwandte Empfehlungen: „ Navicat für MySQL-Grafik-Tutorial

2. Fremdschlüssel festlegen

2.1 Legen Sie zunächst die beiden Felder cln_dt_id und user_id fest, die im clean_data_user zugeordnet werden sollen Tabelle als Primärschlüssel. Wie in der folgenden Abbildung gezeigt:

So richten Sie Multi-Table-Links in Navicat für MySQL ein

2.2 Klicken Sie auf die Schaltfläche „Fremdschlüssel“, um eine Fremdschlüsselbeziehung herzustellen. Wie Sie sich anhand der Benennung der Felder vorstellen können, wird cln_dt_id mit der ID in der Tabelle „clean_data“ verknüpft, und user_id wird mit der ID in der Tabelle „user“ verknüpft. Wie in der Abbildung unten gezeigt:

So richten Sie Multi-Table-Links in Navicat für MySQL ein

Hinweise:

1. Beim Aufbau einer Viele-zu-Viele-Beziehung in einer Datenbank In der Tabelle müssen Sie zunächst den Primärschlüssel festlegen. Wenn der Fremdschlüssel nicht zuerst eingerichtet wird, tritt der Fehler 1215 auf, wie in Abbildung 6 unten dargestellt. Ich habe fast zwei Stunden mit diesem Thema verschwendet. Das sollte wirklich nicht sein.

**

Später entdeckte ich, dass es nicht nötig ist, einen Primärschlüssel zu erstellen, sondern nur Indizes für cln_td_id und user_id zu erstellen!

**

So richten Sie Multi-Table-Links in Navicat für MySQL ein

Also, klären wir die Gründe für den Fehler 1215:

Fehler beim Erstellen von Fremdschlüsseln in MySQL: 1215 Die Fremdschlüsseleinschränkung kann nicht hinzugefügt werden

1. Die Typen oder Größen der beiden Felder stimmen nicht genau überein. Darunter sind die beiden Wortshorts int(6) und int(7), die nicht übereinstimmen. Einer ist unsigniert (unsigniert) und der andere ist signiert, was ebenfalls nicht übereinstimmt.

2. Das Feld, das versucht, einen Fremdschlüssel festzulegen, ist nicht indiziert oder kein Primärschlüssel. Wenn einer davon nicht der Primärschlüssel ist, müssen Sie zunächst einen Index dafür erstellen.

3. Eine oder zwei der Tabellen sind Tabellen der MyISAM-Engine. Wenn Sie Fremdschlüsseleinschränkungen verwenden möchten, muss die Tabelle zur InnoDB-Engine gehören (tatsächlich tritt dieser Fehler überhaupt nicht auf, wenn beide Tabellen zur MyISAM-Engine gehören, aber der Fremdschlüssel wird nicht generiert, sondern nur der Index). erstellt werden) Sie müssen den Engine-Typ der Tabelle überprüfen.

4. Die Namen von Fremdschlüsseln dürfen nicht wiederholt werden.

5. Möglicherweise haben Sie ON DELETE SET NULL gesetzt, aber die zugehörigen Schlüsselfelder sind auf NOTS NULL-Werte gesetzt. Sie können das Problem lösen, indem Sie den Wert des Kaskadenattributs ändern oder das Feldattribut so einstellen, dass es Null zulässt.

6. Bitte stellen Sie sicher, dass Ihre Zeichensatz- und Sortieroptionen auf Tabellen- und Feldebene konsistent sind.

7. Möglicherweise haben Sie einen Standardwert für den Fremdschlüssel festgelegt, z. B. default=0.

8. Es liegt ein Syntaxfehler in der ALTER-Anweisung vor.

Das obige ist der detaillierte Inhalt vonSo richten Sie Multi-Table-Links in Navicat für MySQL ein. 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

In Verbindung stehende Artikel

Mehr sehen