如何检查与表相关的外键

xam*_*mir 55 mysql foreign-key constraint drop-table

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

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

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

如何删除与表相关的外键离开其他人。

Vér*_*ace 74

首先,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';
Run Code Online (Sandbox Code Playgroud)

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

AND TABLE_SCHEMA = 'My_Database';
Run Code Online (Sandbox Code Playgroud)

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

ALTER TABLE My_Table DROP FOREIGN KEY My_Table_Constraint;
Run Code Online (Sandbox Code Playgroud)

参考文献:1 & 2