2009-06-26 5 views
0

У меня есть таблица с несколькими тысячами строк, в которой есть несколько целых столбцов и столбца blob. Я хочу сбросить каждую строку как свой собственный файл, а blob - это содержимое и целые числа, используемые для формирования имени файла. Это одно время, так быстро и грязно. Одно из ограничений заключается в том, что у меня почти нет инструментов, установленных в этой среде, так что это будет часть стоимости dev независимо от того, что я использую.Сбрасывание строк blob в файлы из MySQL


Edit: Я закончил с использованием C# из другого окна. Он загружал только a single assembly и примерно столько же кода, как указано в ответах ниже.

+0

Какая среда это, особенно ОС/дистрибутив? – Svante

+0

У меня есть WinXP и Linux через SSH avalable – BCS

ответ

1

Что-то быстро в 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, но AFAIK, нет никакого способа, чтобы сделать это с чистым SQL.

+0

приятный и простой +1, насколько сложно установить PHP и настроить поддержку MySQL для него? – BCS

+0

@BCS: Большинство серверов (особенно UNIX) поставляются с уже установленным PHP. Если у вас есть SSH/telnet-доступ, вы можете ввести php -v в командной строке, чтобы узнать, доступна ли она. PHP также должен быть скомпилирован с поддержкой MySQL. Если у вас его нет, вы можете установить такой пакет, как Apache Friends XAMPP, но он может быть слишком раздутым для вашего использования (он поставляется с Apache, MySQL, PHPMyAdmin и т. Д. Других вещей). – MiffTheFox

+0

О, и еще одна вещь, вам также нужно будет подключиться к вашей БД, я тоже добавлю этот код. – MiffTheFox

1

В 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))) 

Вы бы должны заполнить хосту, децибел и т.д. (порт является необязательным), и, конечно, отрегулируйте запрос.

+0

ditto комментарий к MiffTheFox – BCS