1

クエリの期間の詳細をテーブルに記録しようとしています。私が抱えている問題は行 8 にあります。これは、行 2 と 3 から作成された QUERY_ID を返す方法が必要なためです。

1)Set profiling =1;

2)INSERT INTO Master
3)VALUES ("a12t22h@hotmail.com","efheif","pwoe");

4)INSERT INTO Duration(Status,DURATION)
5)SELECT STATE, FORMAT(DURATION, 6) AS DURATION
6)FROM INFORMATION_SCHEMA.PROFILING;
7)SELECT * FROM INFORMATION_SCHEMA.PROFILING
8)WHERE QUERY_ID = 1; 

ありがとう

4

2 に答える 2

0

これを試して。これは一時変数であり、挿入後の次の行で使用する必要があります。そうしないと、値がリセットされます。

プロファイリングを=1に設定します。

INSERT INTO Master
VALUES ("a12t22h@hotmail.com","efheif","pwoe");

SET @v1 = LAST_INSERT_ID()

INSERT INTO Duration(Status,DURATION)
SELECT STATE, FORMAT(DURATION, 6) AS DURATION
FROM INFORMATION_SCHEMA.PROFILING;
SELECT * FROM INFORMATION_SCHEMA.PROFILING
WHERE QUERY_ID = @v1;
于 2013-02-19T19:07:02.290 に答える
0

2行目に挿入された値のIDを返したいと思いますか? ; を使用して、挿入された ID を取得できます。

SELECT LAST_INSERT_ID();

それを変数に割り当ててから、最後の挿入ステートメントで使用します。

于 2013-02-19T18:46:09.320 に答える