MySQL:如何找到特定主键在其他表中用作外键的位置?

时间:2011-10-06 09:58:46

标签: mysql sql search foreign-keys primary-key

我正在努力实现一个函数,以防止删除数据库中的某些元素(通过前端),如果它们在其他表中有其他与之关联的项目。否则那些其他表正在寻找不存在的键。

如果你明白我的帽子是给你的。

我有许多表要查看,需要SQL查询或MySQL Workbench功能,可以告诉我,在输入主键(列名,而不是实际值)时,如果该密钥在其他地方用作外键。

否则,如果有人知道一个随便的解决方法,那也会很棒!

2 个答案:

答案 0 :(得分:6)

SELECT 
  table_name, column_name     
FROM
  information_schema.key_column_usage
WHERE
  referenced_table_name = '<table>'
  and referenced_column_name = '<primary key column>'

答案 1 :(得分:0)

this post中描述了一种解决方案,用于从information_Schema表中检索此信息。

1)如果您想从代码中处理这些表,那么将它们作为容器获取,例如代码中的ArrayList并执行您的逻辑。

2)如果你想从你的存储过程中处理这些表,那么使用临时表来实现你在java代码中通过容器所做的相同的工作。