記錄一下使用過程,方便以後查看
此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();