存储过程
DELIMITER &&
drop procedure if exists ups;
CREATE PROCEDURE ups()
BEGIN
DECLARE i int;
DECLARE r int;
set i=0;
set r=(select count(1) from tbl_user_operator);
WHILE i<=r do
update tbl_user_operator set invitationCode=(126532+i) where ID = (select f.ID from (select ID from tbl_user_operator) f LIMIT i,1);
set i = i +1;
end while;
end &&
DELIMITER ;
//以上部分先执行,执行成功后再调用ups
call ups();
大概这样理解,mysql默认以分号作为sql语句的结束来进行执行,当我们在创建存储过程时,为了不让完整的存储过程语句由于分号而提前执行,需要临时规定以//或者$$来作为结束符号。这样的话,创建存储过程时,中间的分号会被忽略,直到遇到//符号才执行语句。
就像上面的截图,创建一个add_pro的存储过程实现了将前两个参数相加赋值给第三个out类型的参数。
创建存储过程完毕后,再delimiter+分号就可以还原分号的结束功能。