PHP を使用して、テーブルから行を削除しようとしているときに、その PK 値が他のテーブルで使用されているかどうかを判断できるようにしたい
1 つまたは複数のテーブルで 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 より大きい場合、その行は使用中です。
このタスクを実行する方法について何か提案はありますか? エラーを削除してキャッチするよりも、ある種のチェックを好む
EDIT 201309091540:誰かいますか?