此文章适合初学者 或 初次使用者
1、定义变量及赋值
DECLARE _beginTime VARCHAR(40) DEFAULT "time";
赋值
SET _beginTime = DATE_FORMAT(NOW(),'%Y-%m-%e');
另一种为 @ 用户变量
赋值
@beginTime = DATE_FORMAT(NOW(),'%Y-%m-%e');
SELECT beginTime INTO @beginTime FROM tableName limit 1;
SET @beginTime = (SELECT beginTime FROM tableName limit 1);
2、游标
当检索出数据列表时需要每一条的数据再进行处理 这时候就需要游标操作,就像遍历一个数组一样
DECLARE done Boolean default false; #记得要写在上面,用于标示游标指引结束 用于判断是否是最后一行跳出循环
DECLARE _filed1 VARCHAR(40);
DECLARE _filed2 VARCHAR(40);
DECLARE tempCursor CURSOR FOR SELECT filed1,filed2 FROM tableName;#定义一个游标 指向的是For后边的select语句
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = true;#当找不到即最后一行时设置参数done为true
OPEN tempCursor;#打开游标
begin_calc: LOOP#设置loop循环
FETCH tempCursor INTO _filed1,_filed2; #赋值
IF done THEN #当为true时
LEAVE begin_calc;#跳出循环
ELSE
INSERT INTO table2 VALUES(_filed1,_filed2); #执行操作
END IF;
CLOSE tempCursor; #关闭游标
END LOOP;