Page précédente Page suivante Table des matières

4. Création d'une base un peu plus conséquente

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
#


Page précédente Page suivante Table des matières