使用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:任何人?