使用 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:有人吗?