mysql游标遍历数据

在数据库迁移过程中,遇到table_user表中部分user_id为NULL的问题。为了解决此问题,从user_info表中通过ORDER BY RAND()随机选取一条记录,然后利用MySQL游标遍历table_user,将选取的user_id填充到NULL字段,实现了数据的修正。
摘要由CSDN通过智能技术生成

由于需要将原来的老数据导入到新表中,但是老数据中的user_id 为null,所以需要从b,表中的name 中获取一部分的数据并且随机填充user_id为null的字段中
create table table_user
(
id int auto_increment
primary key,
user_id int null
);

在这里插入图片描述

user_info
在这里插入图片描述

就是需要从user_info表中获取user_id然后随机插入到table_user中去

select 字段 from 表名 where 条件 ORDER BY RAND() limit 1;
从表中随机取出一个数据

使用sql游标遍历table_user表,

create procedure test()
BEGIN
    -- 声明变量
    DECLARE cid INT;
    DECLARE done INT default 0;

-- 创建游标,并设置游标所指的数据(这里设置ID不为1是因为ID为1的是总的大类)
    DECLARE cur CURSOR for
        SELECT id  from table_user;
-- 游标执行完,即遍历结束。设置done的值为1
    DECLARE CONTINUE HANDLER for not FOUND 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值