Mysql使用存储过程更改数据

记录一下使用过程,方便以后查看

此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();
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值