-
26 000 INSERT ?
Bonjour,
J'ai 26 000 fichiers à mettre dans ma base de données. A part de faire 26 000 INSERT, il n'y aurait pas une technique pour ajouter tout mes dossiers dans la bases de données ? Comme par exemple importer mes fichiers dans la table...
Dans ma table j'ai 3 champs :
id
nom
destination_fichier
Merci d'avance.
John.
-
Avec un copy ma_table from ?
-
Non mais pour l'instant j'ai rien dans ma base de données, mes fichiers sont sur mon ordinateur dans un dossier.
-
Il existe des outils comme Talend qui permettre de parcourir tous les fichier d'un dossier, les traiter et les insérer dans une base de données.
Les fichiers sont sous quel format ?
SQL, CSV, XML, etc... ?
Edit :
Ah non, en fait ce que tu cherche à faire c'est créer 1 ligne dans ta base pour chaque fichier existant ?
Dans ce cas, tu peux faire un petit script VBS qui va parcourir ton dossier et générer les 26000 requêtes dans un fichier sql.
-
En fait dans mon fichier texte j'ai uniquement des chemins d'emplacement de fichier, dedans j'ai le nom des groupes, et des titres de tablature.
Donc depuis quelques jours, j'ai fais un script VBS qui permet de récupérer dans ces chemins, le nom de groupe, le titre. Donc pour l'instant j'ai 2 fichiers contenant les nom de groupe et les emplacements des fichiers.
Il me reste a avoir le titre des tablatures, je pense que je vais y arriver et aussi il me manque la colonne idgroupe qui est une clé étrangère. Donc je dois faire un script qui écrit des chiffres dans un texte a partir des fichiers que j'ai créé.
Ensuite il faut que je mette tout sur exel pour séparer les ficheirs par virgules, puis faire la commande COPY
-
Démarche à suivre :
Récupérer le nom des fichiers grâce à une commande dos :
Code:
dir *.extension /s /b > fichier.txt
Récupérer les informations dont on a besoin, dans le fichier texte, grâce à des scripts VBS. (un fichier pour le groupe, un fichier pour les titres de tablatures, un fichier pour les index et un dernier pour les emplacements des fichiers.
Ajout du groupe dans la table Groupe grâce à un :
Code:
COPY ma_table FROM "chemin vers le fichier texte"
Pour les 3 autres fichiers, il faut les rassembler dans un même fichier et séparer chaque colonne par un séparateur (tabulation par exemple, à sélectionner dans Exel).
Une fois les champs séparés, il ne reste plus qu'à utiliser une dernière fois la commande COPY.
Code:
COPY ma_table(champ1, champ2, champ3) FROM "chemin vers le fichier texte" with delimiter E'\t';
J'ai mis un "E" devant "\t" (la tabulation) car je suis sous PostgreSQL.
John.