通过T-SQL做mock数据

4 阅读1分钟
delimiter $$  
drop procedure if exists updateData;  
create procedure updateData()  
begin  
  declare done int default false;  
  declare pk int;  
  declare cur cursor for select order_id from t_order;  
  declare continue handler for not found set done=true;  
  
  open cur;  
  
  table_loop: LOOP  
    fetch cur into pk;  
    if done then  
        leave table_loop;  
    end if;  
  
    #变更数字型列  
    #UPDATE t_order SET company_id = FLOOR(RAND()*10) where order_id = pk;  
  
    #变更日期型列
    #UPDATE t_order SET order_datetime = date_add(now(), interval FLOOR(RAND()*100)*(-1) DAY) where order_id = pk;  
  
    #变更时间型列
    #UPDATE t_order SET order_datetime = date_add(now(), interval FLOOR(RAND()*100000)*(-1) minute) where order_id = pk;  
  
  
  end loop;  
  
  close cur;  
end$$

根据实际业务,替换文中的t_order以及相关字段,然后执行该存储过程,例如 call updateData;