Mysql创建存储过程,使用游标Cursor循环更新
时间: 2024-02-02 14:02:57 浏览: 82
好的,下面是一个示例的 MySQL 存储过程,使用游标 Cursor 循环更新:
```
DELIMITER //
CREATE PROCEDURE update_table()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE id INT;
DECLARE name VARCHAR(255);
DECLARE cur CURSOR FOR SELECT id, name FROM my_table;
-- 设置游标选项
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 打开游标
OPEN cur;
-- 循环更新数据
update_loop: LOOP
FETCH cur INTO id, name;
IF done THEN
LEAVE update_loop;
END IF;
-- 对数据进行更新操作
UPDATE my_table SET name = CONCAT(name, '_updated') WHERE id = id;
END LOOP;
-- 关闭游标
CLOSE cur;
END //
DELIMITER ;
```
这个存储过程的作用是:循环遍历表 `my_table` 中的每一行数据,并将每一行的 `name` 字段的值都添加后缀 `_updated`。在存储过程中,我们使用了游标 Cursor 来实现对每一行数据的遍历,并使用了循环语句来处理每一行数据的更新操作。
阅读全文