记录一下使用过程,方便以后查看
此sql注释已经能够很好的说明如何进行操作了,因此就不做过多的阐述了。
DROP PROCEDURE IF EXISTS resetDate;
CREATE PROCEDURE resetDate()
BEGIN
# 声明变量,用于接受游标的值
DECLARE _id BIGINT(20);
DECLARE _date DATETIME;
# 声明游标
DECLARE dateCursor CURSOR FOR (SELECT id,date FROM material_price);
# 当游标到达尾部时,mysql自动设置done=1
DECLARE CONTINUE HANDLER FOR NOT FOUND SET _id = NULL;
# 开始循环变量游标
OPEN dateCursor;
# while循环
# 获取游标中的值
FETCH dateCursor INTO _id,_date;
WHILE (_id IS NOT NULL) DO
# 更新表数据
UPDATE material_price SET date = DATE_FORMAT(_date,"%Y-%m-%d") WHERE id = _id;
# 获取游标中的值
FETCH dateCursor INTO _id,_date;
END WHILE;
# 关闭游标
CLOSE dateCursor;
END;
# 执行函数
CALL resetDate();