1. 变量声明与赋值
所有的输入输出变量 ,或者使用中的变量,在使用前,要么使用set 声明,要么使用 declare 声明,或者在变量名字前面加@符号,表示用户自定义变量,否则,会导致变量未定义错误。
单变量赋值
DECLARE @id int(16);
set @a = '12';
set @b = (select count(*) from user);
多变量赋值
DECLARE id int(16);
DECLARE name varchar(128);
select id,name into @id,@name from user where id=1;
select @id:=id,@name:=name from user where id=1;
2. 循环的使用
存储过程中的循环使用
DELIMITER $$
DROP PROCEDURE IF EXISTS 'delete_session' $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_session`(IN top int)
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE temp_id INT;
DECLARE cur CURSOR for( SELECT id from user);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
FETCH cur INTO temp_id;
WHILE done <> 1 DO
DELETE FROM user_session WHERE id = temp_id;
FETCH cur INTO temp_id;
END WHILE;
CLOSE cur;
END $$
DELIMITER;
函数中的循环使用
-- 获取根分类中的根分类名称
delimiter //
drop function if exists 'getRootCateName' //
CREATE F