Сброс строк BLOB-объектов в файлы из MySQL

0

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


Изменить: я закончил использование С# из другого поля. Только загрузка единственной сборки и примерно столько же кода, как указано в ответах ниже.

  • 0
    Что это за среда, особенно ОС / дистрибутив?
  • 0
    У меня WinXP и Linux через SSH доступны
Теги:
flat-file

2 ответа

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 для него?
  • 0
    @BCS: Большинство серверов (особенно UNIX) поставляются с уже установленным PHP. Если у вас есть доступ по SSH / telnet, вы можете ввести в командной строке php -v, чтобы узнать, доступен ли он. PHP должен был быть скомпилирован с поддержкой MySQL. Если у вас его нет, вы можете установить пакет, такой как Apache Friends XAMPP, но он может быть слишком раздутым для вашего использования (он также поставляется с Apache, MySQL, PHPMyAdmin и множеством других вещей).
Показать ещё 3 комментария
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)))

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

  • 0
    так же комментарий к MiffTheFox

Ещё вопросы

Сообщество Overcoder
Наверх
Меню