1

使用 PHP,当我要从表中删除一行时,我希望能够确定它的 PK 值是否被任何其他表使用

我有一张桌子,它的 PK 可能是一张或几张桌子上的 FK。起初我不知道有多少表是相关的。

什么是实现我正在寻找的最有效和最短的方法?

我的第一种方法是获取与之相关的表,执行以下操作:

select table_name, column_name from information_schema.key_column_usage where 
  table_schema = 'my_schema' and referenced_table_name = 'my_table' and 
  referenced_column_name = 'id_field'

然后遍历该列表并为每个表执行以下操作:

select count(*) as total from table_name_from_loop where id_field = my_value

因此,如果其中任何一个count()大于 0,则该行正在使用中。

关于如何执行此任务的任何建议?我更喜欢某种检查而不是尝试删除和捕获一些错误

编辑 201309091540:有人吗?

4

0 回答 0