CREATE DEFINER=`root`@`localhost` PROCEDURE `process_data_test`()
BEGIN
DROP TEMPORARY TABLE IF EXISTS temp_table;
-- 创建临时表
CREATE TEMPORARY TABLE IF NOT EXISTS temp_table (
id INT,
date VARCHAR(100),
test varchar(100)
);
INSERT INTO temp_table (id, date) VALUES (1, 'Sample data 1');
INSERT INTO temp_table (id, date) VALUES (2, 'Sample data 2');
BEGIN
DECLARE v_id INT;
DECLARE v_data VARCHAR(255);
DECLARE stopCur INT DEFAULT 0;
DECLARE cur CURSOR for select id, date from temp_table;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET stopCur = null;
-- 开游标
OPEN cur;
-- 游标向下走一步,将查询出来的两个值赋给定义的两个变量
FETCH cur INTO v_id, v_data;
-- 循环体
WHILE( stopCur IS NOT NULL) DO
-- 更新对应关系表数据
UPDATE temp_table SET test=1 WHERE id = v_id ;
-- select v_id;
-- 游标向下走一步
FETCH cur INTO v_id, v_data;
END WHILE;
-- 关闭游标
CLOSE cur;
END;
select * from temp_table;
END