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

我猜你想返回第 2 行插入的值的 ID?您可以使用 ; 获取插入的 Id

选择 LAST_INSERT_ID();

我会将其分配给一个变量,然后在您的最后一个插入语句中使用它。

于 2013-02-19T18:46:09.320 回答
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 回答