将 blob 行从 MySQL 转储到文件

发布于 2024-07-25 09:42:15 字数 321 浏览 5 评论 0原文

我有一个包含几千行的表,其中有一些整数列和一个 blob 列。 我想将每一行转储为自己的文件,其中 blob 为内容,整数用于形成文件名。 这是一次性操作,所以快速和脏是可以的。 一个限制是我在这个环境中几乎没有安装任何工具,因此无论我使用什么,这都将成为开发成本的一部分。


编辑:我最终使用了另一个盒子中的 C#。 只需下载单个程序集和大约相同数量的代码如下面的答案所示。

I have a table with a few thousand rows in it that has a few integer columns and a blob column. I want to dump each row out as its own file with the blob being the content and the integers being used to form the file name. This is a one time op so quick and dirty is OK. One constraint is that I have almost no tools installed in this enviornment so that will be part of the dev cost no matter what I use.


Edit: I ended up using C# from another box. It only took downloading a single assembly and about the same amount of code as given in the answers below.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伴随着你 2024-08-01 09:42:15

PHP 中的快速操作:

<?php
$connection = mysql_connect("mysqlserver.example.com", "username", "password");
mysql_select_db("dbname");
$sql = "SELECT `blob_column`, `id` FROM `mytable`";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)){
    file_put_contents("file" + $row["id"] + ".dat", $row["blob_column"]);
}
mysql_close($connection);

您可能可以使用任何访问 MySQL 的方法来执行类似的操作,但据我所知,无法使用纯 SQL 来执行此操作。

Something quick in PHP:

<?php
$connection = mysql_connect("mysqlserver.example.com", "username", "password");
mysql_select_db("dbname");
$sql = "SELECT `blob_column`, `id` FROM `mytable`";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)){
    file_put_contents("file" + $row["id"] + ".dat", $row["blob_column"]);
}
mysql_close($connection);

You could probably do something simular with whatever method you have to access MySQL, but AFAIK, there's no way to do it with pure SQL.

是伱的 2024-08-01 09:42:15

在 Common Lisp 中,使用 CLSQL,类似下面的内容应该可以工作(未经测试,目前没有安装 MySQL):

(require 'clsql)
(require 'clsql-mysql)

(clsql:connect (host db user password port) :database-type :mysql)

(clsql:do-query ((col1 col2 blob) "select col1,col2,blob from blobtable")
  (with-open-file (outfile (format nil "~a-~a" col1 col2)
                           :direction :output
                           :element-type 'byte)
    (write-sequence blob outfile)))

您必须填写主机、数据库等(端口是可选的),并调整查询,课程。

In Common Lisp, using CLSQL, something like the following should work (untested, don't have MySQL installed at the moment):

(require 'clsql)
(require 'clsql-mysql)

(clsql:connect (host db user password port) :database-type :mysql)

(clsql:do-query ((col1 col2 blob) "select col1,col2,blob from blobtable")
  (with-open-file (outfile (format nil "~a-~a" col1 col2)
                           :direction :output
                           :element-type 'byte)
    (write-sequence blob outfile)))

You would have to fill in host, db etc. (port is optional), and adjust the query, of course.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文