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?

War es hilfreich?

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;

Verweise: 1 & 2.

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top