auto_increment
最後の挿入で値が挿入されたテーブルではないテーブルから、主キーの現在の ID を取得することは可能ですか?
私がいる状況は次のようになります。
1 -Evaluation
表に評価を挿入します。
2 - 次に、 および を使用して、評価に関連する各質問の結果を表に挿入しますEvaluation_Details
。last_insert_id()
3 - 最後に、質問の結果に基づいて評価に必要なすべての統計を計算し、それを使用してEvaluation
テーブルを更新する必要があります。
ここに問題があります。テーブルの最後の挿入の ID を取得する必要がありEvaluation
ますが、テーブルlast_insert_id()
の最後の挿入の ID が返されEvaluatin_Details
ます。
すべてが同じトランザクションで行われ、各テーブルにはauto_increment
ID があります。
私はそのクエリを知っています:
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
です。
ありがとう!