最後に影響を受けたテーブル名を取得したい (挿入後)。
で試しましmysql_insert_id()
たが、 しか得られませんでしid
た。テーブル名も欲しい。
誰でも私の問題のアイデアを教えてもらえますか
information_schema
データベースがある場合は、データベースを使用できます。
SELECT TABLE_SCHEMA, TABLE_NAME, UPDATE_TIME
FROM TABLES
ORDER BY UPDATE_TIME DESC
LIMIT 0,1
クエリの後にこれを使用すると、影響を受けるテーブルが取得されます。
コメントで、変更を適用するために共通の関数を使用しているため、最後に挿入したテーブルが何であるかを「知る」ことができないと述べています。
その場合:あなたのロジックには欠陥があります。
MySQL は、INSERT を行った最後のテーブルが何であるかを教えてくれません。どのテーブルを更新するかを最後に知る関数にフックを記述する必要があります。使用する関数に関係なく、挿入を実行する前に、ある時点でテーブル名を指定する必要があります。その時点でテーブル名を保存します。
必要に応じて、さまざまな方法でこれを行うことができます。