So überprüfen Sie Fremdschlüssel, die sich auf eine Tabelle beziehen
-
26-09-2020 - |
Frage
Wie kann ich Fremdschlüssel sehen, die sich auf eine Tabelle in MySql beziehen?
Hintergrund :Ich wollte eine Tabelle in MySql löschen, die eine Fremdschlüsseleinschränkung hat.Wenn ich es mache, bekomme ich Folgendes:
Error Code: 1217. Cannot delete or update a parent row: a foreign key constraint fails
Wie kann ich Fremdschlüssel im Zusammenhang mit der Tabelle löschen und andere verlassen?
Lösung
Finden Sie zunächst Ihre heraus FOREIGN KEY
Beschränkungsnamen auf diese Weise:
SELECT
TABLE_NAME,
COLUMN_NAME,
CONSTRAINT_NAME, -- <<-- the one you want!
REFERENCED_TABLE_NAME,
REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_NAME = 'My_Table';
Sie können auch (zum hinzufügen WHERE
-Klausel), wenn Sie mehr als eine Tabelle aufgerufen haben My_Table
in verschiedenen Schemata.
AND TABLE_SCHEMA = 'My_Database';
Und dann können Sie die benannte Einschränkung auf folgende Weise entfernen:
ALTER TABLE My_Table DROP FOREIGN KEY My_Table_Constraint;
Andere Tipps
hat die oben angegebene Abfrage erzählt.Geänderter Tabellenname in den Tabellennamen, der als referenzierter Tabellenname in der Tabelle ist, ist die Tabelle, die referenziert wird, und daher wird das Ergebnis der Originalabfrage nicht den Fremdschlüssel auf Ihrem Tisch angezeigt.
generasacodicetagpre.in MySQL 5.7.Sie können Tischbeziehungen und Beziehungsregeln finden.
generasacodicetagpre.Sie können diese Ausgabe dieses Abfrage direkt ausführen, um die Einschränkung der referenzierten Tabelle abzulegen.
generasacodicetagpre.