mysql 通过存储过程批量更新表数据
时间: 2023-07-04 15:30:26 浏览: 140
可以通过存储过程实现批量更新表数据。以下是一个示例存储过程:
```mysql
DELIMITER $$
CREATE PROCEDURE batch_update()
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;
read_loop: LOOP
FETCH cur INTO id, name;
IF done THEN
LEAVE read_loop;
END IF;
-- 执行更新操作
UPDATE my_table SET name = CONCAT(name, '_updated') WHERE id = id;
END LOOP;
CLOSE cur;
END$$
DELIMITER ;
```
在这个存储过程中,首先声明了一个游标,用于遍历表中的每一行记录。然后进入一个循环,不断从游标中获取记录,执行更新操作,直到所有记录都被处理完毕。
使用该存储过程,只需要调用它一次即可批量更新表中的所有记录:
```mysql
CALL batch_update();
```
阅读全文