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

SQL-Implementierung LeetCode (176. Zweithöchstes Gehalt)

[LeetCode] 176. Zweithöchstes Gehalt Schreiben Si...

Verwendung des Docker-Systembefehlssatzes

Inhaltsverzeichnis Docker-System df Docker-System...

Lösung für das Problem des Sitzungsverlusts bei Nginx

Bei der Verwendung von Nginx als Reverse-Proxy fü...

Die vue-cli-Konfiguration verwendet den vollständigen Prozessdatensatz von Vuex

Inhaltsverzeichnis Vorwort Installation und Verwe...

So implementieren Sie den Vue-Mausrad-Scrolling-Umschalt-Routing-Effekt

Eine Root-Routing-Komponente (die Root-Routing-Ko...

Implementierung eines Element-Eingabefelds, das automatisch den Fokus erhält

Beim Erstellen eines Formulars in einem aktuellen...

MySQL-Komplettabsturz: Detaillierte Erklärung der Abfragefilterbedingungen

Überblick In tatsächlichen Geschäftsszenarioanwen...

HTML-Seite unterstützt die Implementierung des Dunkelmodus

Seit 2019 verwenden sowohl Android- als auch iOS-...

js implementiert benutzerdefinierte Dropdown-Box

In diesem Artikelbeispiel wird der spezifische JS...

Detaillierte Erklärung zu Javascript-Dateien und Blobs

Inhaltsverzeichnis Datei() Grammatik Parameter Be...