遍历整个表并更新表中某个字段的值
上代码
CREATE DEFINER=`root`@`localhost` PROCEDURE `relation_update`()
BEGIN
-- 自定义变量
DECLARE var_count int DEFAULT 0;
DECLARE var_end_count int DEFAULT 0;
DECLARE var_id VARCHAR (100) DEFAULT NULL;
DECLARE var_name VARCHAR (1000) DEFAULT NULL;
-- 声明游标, 将 `t_relation` 表中的id和name放到游标中
DECLARE cur CURSOR FOR
SELECT `id`, `name` FROM t_relation;
-- 赋值
SET var_count = 0;
SELECT count(*) into var_end_count FROM t_relation;
-- 打开游标
OPEN cur;
-- 开始循环遍历
WHILE var_count < var_end_count DO
-- 批读取数据到指定变量上
FETCH cur INTO var_id, var_name;
-- 进行逻辑操作
UPDATE t_relation
SET `name` = CONCAT(var_name, var_count)
where id = var_id;
-- 自增
set var_count = var_count + 1;
-- 结束循环
END WHILE;
-- 关闭游标
CLOSE cur;
END