一尘不染

仅使用SQL将Blob从MySQL数据库导出到文件

mysql

我有一个表,其中的图像数据存储在MySQL数据库的blob字段中。有没有一种方法可以仅使用SQL将这些图像导出到文件系统上的文件?图片应命名为{imageId}
.jpg

我知道用Java或其他方法很容易做到这一点,但是仅用SQL脚本就能做到吗?


阅读 1111

收藏
2020-05-17

共1个答案

一尘不染

我不喜欢这个主意…

drop procedure if exists dump_image;
delimiter //
  create procedure dump_image()
  begin

    declare this_id int;
    declare cur1 cursor for select imageId from image;
    open cur1;
      read_loop: loop
        fetch cur1 into this_id;
        set @query = concat('select blob_field from image where imageId=', 
            this_id, ' into outfile "/tmp/xyz-', this_id,'.jpg"');
        prepare write_file from @query;
        execute write_file;
      end loop;
    close cur1;
  end //
delimiter ;

尽管有错误

mysql>调用dump_image();
错误1329(02000):无数据-提取,选择或处理了零行



ls -1 / tmp / xyz *
2020-05-17