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

18 erstaunliche Verbindungen zwischen Interaktionsdesign und Psychologie

Designer müssen Psychologie verstehen, indem sie ...

Beispiel für einen reinen CSS3-Mindmap-Stil

Mindmap Er sieht wahrscheinlich so aus: Die meist...

Details zu Linux-Dateideskriptoren, Dateizeigern und Inodes

Inhaltsverzeichnis Linux - Dateideskriptor, Datei...

Einführung in den Befehl „Linux-Typversion-Speicherfestplattenabfrage“

1. Lassen Sie uns zunächst eine allgemeine Einfüh...

Lokale MySQL-Installation und Problemlösung

Vorwort Dieser Artikel ist ziemlich ausführlich u...

Zusammenfassung der MySQL-DML-Anweisungen

DML-Operationen beziehen sich auf Operationen an ...

Teilen Sie die 15 besten HTML/CSS-Design- und Entwicklungsframeworks

Professionelles Webdesign ist komplex und zeitint...