首先我们查看一个正确的完整的一个存储过程
①其中delimiter命令解释如下:默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。
这种默认以分号执行命令会使存储过程创建不完整就被执行,显然会报错。所以用delimiter命令将默认的;变成||(也可以是&& ,//什么的)。执行完后
把某段语句写完之后,再用||结束,提交执行。最后用delimiter 命令修改回来。
②mysql中局部变量声明只可写在sql语句块中,如函数和存储过程中,作用域也就是一个语句块。msyql不支持匿名块,所以不可以随便使用变量;
用户变量不用声明可直接使用,作用域是当前整个连接。用select 和set 直接赋值,其中select赋值只能用“:=”赋值,因为在select语句中,“=”
执行比较操作
③
DELIMITER || create procedure mypro() begin declare i integer; set i=1; start transaction; while i<=100 do begin end; end while; commit; end; || delimiter ;
时间: 2024-12-24 19:50:17