一个mysql数据库导出脚本

用于将mysql blob数据导出查看,对于一条记录的写一条sql语句就够了,但现在要查询一堆记录,只好写了个存储过程。

 

drop procedure IF EXISTS test_proc;
delimiter //
create procedure test_proc()
begin
  DECLARE done INT DEFAULT 0;
  declare nGuid BIGINT UNSIGNED;
  DECLARE FileNo INT DEFAULT 0; 
  DECLARE szFileNo VARCHAR(32) DEFAULT "";
  DECLARE FilePath VARCHAR(32) DEFAULT "/data/game/Quest/Q";
  DECLARE FileName VARCHAR(64) DEFAULT "";

 -- 声明游标对应的 SQL 语句
 DECLARE cur CURSOR FOR
  select  Guid from t_Human where Level>=10 and Level<=11;
 -- 在游标循环到最后会将 done 设置为 1
 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
 -- 执行查询
 open cur;
 -- 遍历游标每一行
 REPEAT
  -- 把一行的信息存放在对应的变量中
   FETCH cur INTO nGuid;
  if not done then
   set FileNo=FileNo+1;
   select FileNo into szFileNo;
   set FileName = concat(FilePath, szFileNo); 
   set  @smt = concat("select QuestData from t_Quest where Guid=",nGuid, " into dumpfile '",FileName,"';");
   prepare se from @smt;
   execute se;
  end if;
  UNTIL done END REPEAT;
 CLOSE cur;
end
//
delimiter ;
-- 执行存储过程
call test_proc();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值