2008-10-28 7 views
3

J'ai un problème, et j'espérais pouvoir compter sur une partie de l'expérience ici pour obtenir des conseils et une poussée dans la bonne direction. J'ai un fichier MS Access fait par un logiciel propriétaire. Je veux seulement prendre la moitié des colonnes de cette table, et importer dans la nouvelle base de données mysql (pas encore configurée).Accéder DB5 automatiquement à MySQL

Je n'ai aucune idée de comment faire cela ou quelle est la meilleure façon. De nouvelles données seront obtenues chaque nuit, et de nouveau importées, comme une tâche automatique.

L'une des colonnes de la base de données d'accès est une URL vers un fichier jpeg, je veux télécharger ce fichier et l'importer dans la base de données en tant que type BLOB automatiquement.

Existe-t-il un moyen de le faire automatiquement? Ce sera sur une machine Windows, alors peut-être qu'il pourrait être scripté avec WSH?

Répondre

5

C'est un script bash linux exemple en utilisant mdbtools pour l'extraction automatique et l'importation d'un fichier 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 

Vous pouvez utiliser d'autres options de mysqlimport: --delete: pour supprimer les données de la précédente table mysql cible. --ignore: ignorer les doublons - remplacer: remplacer si un doublon est trouvé

Ce n'est pas une solution Windows mais j'espère que cela aide.

+0

Merci pour votre réponse, Pouvez-vous clarifier un peu plus, que je remplace TableName tous les noms de table que je veux? Cela permettrait-il de s'assurer que les données ne seraient pas importées deux fois? –

+0

J'ai modifié mon message. Mais oui, vous devez remplacer TableName_n avec tous les noms de tables que vous voulez. Vous avez quelques options mysqlimport pour éviter les données en double. –

+0

Pourquoi utiliseriez-vous MDBTools sur une machine Windows alors que vous avez déjà installé Jet (Jet est un composant de Windows, car il est utilisé comme magasin de données pour Active Directory)? –

Questions connexes