Lösung für Fremdschlüsselfehler bei der MySQL-Tabellenerstellung

Lösung für Fremdschlüsselfehler bei der MySQL-Tabellenerstellung

Datenbanktabelle A:

Tabelle erstellen Task_Desc_Tab
(
  id INT(11) PRIMARY KEY NOT NULL COMMENT 'Primärschlüssel automatisch inkrementieren' AUTO_INCREMENT,
  <strong>Taskname</strong> VARCHAR(200) NOT NULL COMMENT 'Taskname',
  sqlname VARCHAR(20) NOT NULL COMMENT 'SQL-Dateiname',
  params VARCHAR(5000) NOT NULL COMMENT 'Taskparameter im Format eines JSON-Strings',
  updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'Aktualisierungszeitpunkt',
  detail VARCHAR(3000) COMMENT 'Einige beschreibende Informationen zur Aufgabe, nur für Notizen'
)
 ENGINE = InnoDB
 STANDARD-ZEICHENSATZ = utf8;

Datenbank B:

Tabelle erstellen exec_plan_tab
(
  id INT(11) PRIMARY KEY NICHT NULL AUTO_INCREMENT,
  <strong>Taskname</strong> VARCHAR(200) NICHT NULL,
  Startdatum DATE NICHT NULL,
  Enddatum DATE NICHT NULL,
  Aktualisierungszeit TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT exec_plan_tab_task_desc_tab_taskname_fk FOREIGN KEY (Aufgabenname) REFERENZEN task_desc_tab (Aufgabenname)
)
 ENGINE = InnoDB
 STANDARD-ZEICHENSATZ = utf8;

Ziel: Erstellen Sie eine Tabelle, sodass der Taskname in Tabelle B ein Fremdschlüssel ist. Beziehen Sie sich auf das Feld Taskname in Tabelle A. Beim Erstellen der Tabelle wird der folgende Fehler gemeldet:

[2018-07-19 15:02:29] [HY000][150] Erstellen der Tabelle 'daxin/#sql-5d_30' mit Fremdschlüsseleinschränkung ist fehlgeschlagen. Es gibt keinen Index in der referenzierten Tabelle, in dem die referenzierten Spalten als erste Spalten erscheinen.
[2018-07-19 15:02:29] [HY000][1215] Fremdschlüsseleinschränkung kann nicht hinzugefügt werden
[2018-07-19 15:02:29] [HY000][1215] Fremdschlüsseleinschränkung kann nicht hinzugefügt werden

Nach der Fehlerbehebung haben wir die Ursache des Problems gefunden: Der Taskname in Tabelle A muss mit dem Feld UNIQUE geändert werden, um die Eindeutigkeit des Datensatzes sicherzustellen und Mehrdeutigkeiten bei Referenzierungen durch Tabelle B zu vermeiden.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • MySQL erstellt in der Praxis drei Beziehungstabellen
  • So erstellen Sie schnell eine Testdatentabelle mit 8 Millionen Einträgen in MySQL
  • MySQL und PHP Grundlagen und Anwendungsthemen: Erstellen von Datenbanktabellen
  • Python speichert Daten vom Typ „dict dictionary“ in MySQL und erstellt automatisch Tabellen und Spalten
  • MySQL lernen, Datenbanken und Tabellen-DDL zu erstellen und zu bedienen für Anfänger
  • Der erste Schritt beim Einstieg in die MySQL-Datenbank besteht darin, eine Tabelle zu erstellen
  • So erstellen Sie eine Tabelle in MySQL und fügen Feldkommentare hinzu
  • Freigabe des MySQL-Befehls für die Tabellenerstellung

<<:  js, um einen gleitenden Karusselleffekt zu erzielen

>>:  Verwendung des Linux-Crontab-Befehls

Artikel empfehlen

Vergleich mehrerer Beispiele zur Einfügungseffizienz in MySQL

Vorwort Aus beruflichen Gründen musste ich kürzli...

Vue Grundlagen Listener Detaillierte Erklärung

Inhaltsverzeichnis Was ist ein Listener in Vue? V...

Teilen Sie 101 MySQL-Debugging- und Optimierungstipps

MySQL ist eine leistungsstarke Open-Source-Datenb...

Das WeChat-Applet implementiert einen Videoplayer, der einen Bullet-Screen sendet

In diesem Artikel wird der spezifische Code für d...

Fragen zum Vorstellungsgespräch zu JS 9 Promise

Inhaltsverzeichnis 1. Mehrere .catch 2. Mehrere ....

Fallstudie zu JavaScript-Ereignisschleifen

Ereignisschleife in js Da JavaScript ein Single-T...

MySQL Installations-Tutorial unter Windows mit Bildern und Text

Anweisungen zur MySQL-Installation MySQL ist ein ...

Schritte der MySQL-Methode zum Bestimmen, ob es sich um eine Teilmenge handelt

Inhaltsverzeichnis 1. Problem 2. Lösung Option 1:...

Eine Screenshot-Demo basierend auf Canvas in HTML

Geschrieben am Anfang Ich erinnere mich, dass ich...

Einige Einstellungen von Div bezüglich Rahmen und Transparenz

rahmen: Stil = „Rahmenstil: durchgezogen; Rahmenbr...

Datenbankabfrageoptimierung: Unterabfrageoptimierung

1. Fall Nehmen Sie alle Mitarbeiter, die nicht Fi...

Detaillierte Schritte zum Erstellen eines Dateiservers in Windows Server 2012

Der Dateiserver ist einer der am häufigsten verwe...