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();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章