1

auto_increment最後の挿入で値が挿入されたテーブルではないテーブルから、主キーの現在の ID を取得することは可能ですか?

私がいる状況は次のようになります。

1 -Evaluation表に評価を挿入します。

2 - 次に、 および を使用して、評価に関連する各質問の結果を表に挿入しますEvaluation_Detailslast_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です。

ありがとう!

4

1 に答える 1

0

説明した 2 番目のステップでは、複数のレコードをfrom the table insertをEvaluation_Details使用して挿入します。この ID を持っているので、それを変数に格納し、それを使用して最後のクエリを実行できます。last_insert_id()Evaluation

于 2013-08-06T21:40:28.417 に答える