Pour se faire, j'ai fait un ls -lR sur mon disque puis, je l'ai filtré pour avoir un fichier dont les lignes sont de la forme suivantes :
type (f, l, d, ...)
utilisateur
groupe
taille
mois (Jan, Fev, ...)
jours (1, 2, ...)
heure (xx:xx)
nom
Il y a quelques pièges à éviter (par exemple, l'heure des fichiers non
modifiés depuis plus de 6 mois passe en année). Il faut que chaque champs
respecte le type du champs correspondant de la table; la commande copy
permet de l'intégrer et affiche des messages d'erreurs suffisamment
explicites.
Avec les commande COPY, il est possible d'insérer un fichier du
moment qu'il est uniforme et conforme à la table. Il est possible de créer
un fichier (sur Excel par exemple), de l'exporter en mode texte et de
l'importer dans la base.
$ psql pmeca
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
type \? for help on slash commands
type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: pmeca
pmeca=> create table fichiers (
pmeca-> type varchar,
pmeca-> utilisateur text,
pmeca-> groupe text,
pmeca-> taille int4,
pmeca-> mois text,
pmeca-> jours int2,
pmeca-> heure time,
pmeca-> nom text);
CREATE
pmeca=>
pmeca=> copy fichiers from '/tmp/ls.txt' using delimiters ' ';
COPY
pmeca=>
pmeca=> select count(*) from fichiers;
count
-----
40362
(1 row)
pmeca=>
Il ne faut pas oublier de donner les droits à l'utilisateur nobody :
pmeca=>grant select on fichiers to nobody;
CHANGE
pmeca=>\q
$ exit
#