Frage

Ich versuche, eine fremde Schlüsselbeschränkung über SQLYOG hinzuzufügen und diesen Fehler zu erwerben, obwohl ich nur eine Quelle und eine Referenzspalten ausgewähte

Bitte wählen Sie die gleiche Anzahl von Quelle und Referenz

Weiß jemand, was es in diesem Fall bedeutet? Beachten Sie, dass ich eine gleiche Anzahl von Quellen- und Referenzspalten habe ...

War es hilfreich?

Lösung

Ich bin auf das gleiche Problem mit Sqlyog v9.01 gestoßen. Die Fehlermeldung ist irreführend und die tatsächliche Ursache eines Fehlers kann völlig unterschiedlich sein.

Dinge, die ich überprüft habe, um dies zu lösen, sind Folgendes:

  • Überprüfen Sie die Tabelle Engyne -Typen, sollten beide InnoDB sein
  • Überprüfen Sie, ob Ihre Zieltabelle nicht mit der Quelle gleich ist.
  • Überprüfen Sie die Datenatypen, Länge und Charset Collation referenzierter Felder.
  • Wenn Sie bereits Daten in Ihren Tabellen haben, überprüfen Sie die Konsistenz.

Beispielsweise sollten Sie alle nicht verwandten Daten aus Tabelle B entfernen, die sich auf Tabelle A beziehen

 DELETE target FROM B AS target LEFT JOIN A USING(id_A) WHERE A.id_A IS NULL
  • Schließlich musste ich in meinem Fall Tische spülen, um meine Einschränkungen erfolgreich zu erstellen.

Die manuelle Einschränkung im Abfragefenster erhalten Sie weitere Informationen zu Ihrem Fehlertyp.

Nur eine Erinnerung:

ALTER TABLE `B` ADD CONSTRAINT `FK_B` FOREIGN KEY (`id_A`) REFERENCES `A` (`id_A`) ON DELETE CASCADE ; 

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top