auto_increment最後の挿入で値が挿入されたテーブルではないテーブルから、主キーの現在の ID を取得することは可能ですか?
私がいる状況は次のようになります。
1 -Evaluation表に評価を挿入します。
2 - 次に、 および を使用して、評価に関連する各質問の結果を表に挿入しますEvaluation_Details。last_insert_id()
3 - 最後に、質問の結果に基づいて評価に必要なすべての統計を計算し、それを使用してEvaluationテーブルを更新する必要があります。
ここに問題があります。テーブルの最後の挿入の ID を取得する必要がありEvaluationますが、テーブルlast_insert_id()の最後の挿入の ID が返されEvaluatin_Detailsます。
すべてが同じトランザクションで行われ、各テーブルにはauto_incrementID があります。
私はそのクエリを知っています:
SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES"
WHERE TABLE_SCHEMA = 'database_name'
AND TABLE_NAME = 'table_name';
挿入する次のIDの値を教えてくれますが、これを照会して1を引いて現在のIDを取得するのは良い習慣ではないと思います。
編集:複数のユーザーが同時にデータを挿入する可能性があることを追加するのを忘れていました。を使用しなかったのはそのためMAX(id) from table_nameです。
ありがとう!