mysql控制台中过程执行时间的差异

时间:2019-02-21 18:59:32

标签: mysql stored-procedures time console

当我在控制台上执行mysql过程时,该过程始终显示两次,但我不知道每件事指的是什么时间。

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:0)

您的过程必须先执行SELECT,然后再执行一些非SELECT。

这是一个演示:

mysql> delimiter ;;
mysql> create procedure p() begin select 123; do 123+456; end;;
mysql> delimiter ;

mysql> call p;
+-----+
| 123 |
+-----+
| 123 |
+-----+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

报告两次是针对过程中运行的两个SQL语句。

  • 第一条语句返回一行。
  • 第二条语句没有返回任何行,但仍然必须执行,因此它报告了时间。

具有结果集的语句包括SELECT和SHOW。

所有其他语句均未设置结果,但可能会影响行。就像UPDATE更改行一样,它会报告它影响了一定数量的行,也就是它更改的行。

我在演示中展示的快速示例仅使用DO语句,该语句对表达式进行求值,但不更改任何数据或不返回任何数据。