一尘不染

如何检查与表相关的外键

mysql

如何在 MySql 中查看与表相关的外键?

背景:我想在 MySql 中删除一个具有外键约束的表。当我这样做时,我得到了这个:

Error Code: 1217. Cannot delete or update a parent row: a foreign key constraint fails

如何删除与表相关的外键,留下其他表。


阅读 57

收藏
2022-10-10

共1个答案

一尘不染

首先,以这种方式找出您的FOREIGN KEY约束名称:

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';

WHERE如果您有多个My_Table在不同模式中调用的表,您也可以添加(到子句)。

AND TABLE_SCHEMA = 'My_Database';

然后您可以通过以下方式删除命名约束:

ALTER TABLE My_Table DROP FOREIGN KEY My_Table_Constraint;
2022-10-10