У меня проблема, и я надеялся, что смогу положиться на некоторый опыт, полученный здесь, за совет и толчок в правильном направлении. У меня есть файл MS Access, созданный с помощью специального программного обеспечения. Я хочу взять только половину столбцов из этой таблицы и импортировать в новую (еще не настроенную) базу данных mysql.
Я понятия не имею, как это сделать и что лучше всего. Новые данные будут собираться каждую ночь и снова импортироваться в качестве автоматической задачи.
Один из столбцов в базе данных доступа - это URL-адрес файла jpeg, я хочу загрузить этот файл и автоматически импортировать в базу данных как тип BLOB.
Есть ли способ сделать это автоматически? Это будет на машине с Windows, так что, возможно, его можно было бы написать с помощью WSH?






Это пример сценария linux bash, использующего mdbtools для автоматического извлечения и импорта из файла mdb в mysql.
#!/bin/bash
MDBFILE = "Data.mdb"
OPTIONS = "-H -D %y-%m-%d"
mdb-export $OPTIONS $MDBFILE TableName_1 > output_1.txt
mdb-export $OPTIONS $MDBFILE TableName_2 > output_2.txt
mdb-export $OPTIONS $MDBFILE TableName_n > output_n.txt
MYSQLOPTIONS=' --fields-optionally-enclosed-by = " --fields-terminated-by=, -r '
mysqlimport $MYSQLOPTIONS -L -uuser -ppasword database output_1.txt
mysqlimport $MYSQLOPTIONS -L -uuser -ppasword database output_2.txt
mysqlimport $MYSQLOPTIONS -L -uuser -ppasword database output_n.txt
Вы можете использовать некоторые другие параметры mysqlimport: --delete: удалить предыдущие данные из целевой таблицы mysql. --ignore: игнорировать дубликаты --replace: заменить, если найден дубликат
Это не решение для Windows, но я надеюсь, что это поможет.
Я редактировал свой пост. Но да, вам нужно заменить TableName_n всеми именами таблиц, которые вы хотите. У вас есть несколько параметров mysqlimport для предотвращения дублирования данных.
Зачем использовать MDBTools на компьютере с Windows, если на нем уже установлен подлинный Jet (Jet является компонентом Windows, потому что он используется в качестве хранилища данных для Active Directory)?
Как я уже сказал, это пример LINUX-скрипта на bash. Я в коробке с LINUX. «Это не решение для Windows, но я надеюсь, что это поможет».
http://www.dbtalk.net/mailing-database-mysql-win32/what-quickest-way-convert-access-136837.html
Найдите Кофлера (он написал книгу на немецком, часть которой была конвертером mdb2sql)
Вот более новая редакция. http://www.amazon.de/Definitive-Guide-MySQL/dp/1590595351/ref=sr_1_3?ie=UTF8&s=books-intl-de&qid=1225197012&sr=8-3
Спасибо за ваш ответ. Не могли бы вы уточнить немного больше, могу ли я заменить TableName всеми именами таблиц, которые мне нужны? Будет ли он гарантировать, что данные не будут импортированы дважды?