答案 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
语句,该语句对表达式进行求值,但不更改任何数据或不返回任何数据。