mysql存储过程定义变量

发布时间: 2023-11-21 10:25 阅读: 文章来源:1MUMB19PS

1.declare

declare 变量名 变量类型 default 默认值;

drop PROCEDURE IF EXISTS test1;delimiter //CREATE PROCEDURE test1()BEGINDECLARE n int DEFAULT 1; WHILE n < 100 DOinsert into user(username,password,create_time) values(‘000‘,‘1111‘,now());set n = n + 1; END WHILE;END //delimiter ;call test1();

declare定义的变量 相当于一个局部变量 在end之后失效,而且declare只能在begin,end中定义。

2.set

set @变量名=值

drop PROCEDURE IF EXISTS test2;delimiter //CREATE PROCEDURE test2()BEGINSET @n=1; WHILE @n < 100 DOinsert into user(username,password,create_time) values(‘000‘,‘1111‘,now());SET @n:=@n+1; END WHILE;END //delimiter ;CALL test2();

此处的变量n不需要声明,MySQL会自动根据值类型来确定类型,这种变量要在其前面加上“@”符号,称之为会话变量,代表在整个会话过程起作用,有点类似于全局变量。

在set和update时,=和:=,是一样的,都有赋值的作用。

:=是赋值的作用,先执行@n+1,然后再赋值给@n

•••展开全文