Pages: 1
- Sujet précédent - [PostgresSQL] : COPY TO seulement si ma table est non vide - Sujet suivant
#1 Mon 15 April 2013 14:22
- guil31
- Participant actif
- Date d'inscription: 22 Jan 2013
- Messages: 79
[PostgresSQL] : COPY TO seulement si ma table est non vide
Je souhaite exporter des tables en csv avec la commande COPY .... TO ....
mais que pour les tables non vides (et si possible sans passer par une fonction)
Je n'ai pas trouvé cette option dans l'aide sur COPY TO
Je pensais donc utiliser bêtement l'expression CASE WHEN
En écrivant quelque chose du genre:
Code:
CASE WHEN (select count(*) from ma_table) >0 THEN copy ma_table TO 'D:\\mon_repertoire\\ma_table.csv ' CSV HEADER DELIMITER ';' END;
Visiblement ca ne fonctionne pas comme ca et j'ai le sentiment que l'expression CASE WHEN n'est pas utilisable en dehors d'un SELECT.
Merci pour votre aide
Hors ligne
#2 Mon 15 April 2013 15:27
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: [PostgresSQL] : COPY TO seulement si ma table est non vide
Bonjour,
Ca doit etre difficile a faire en pur SQL...
Il faut passer par un bout de script pour tester si les tables sont vides.
Vous devez pouvoir faire ca avec pgScript directement dans pgAdmin (http://pgscript.projects.pgfoundry.org/SCRIPT.html).
Ca se fait aussi assef facilement en shell ou dos en testant le count(*) des tables avant de lancer le COPY TO.
Nicolas
Hors ligne
#3 Tue 16 April 2013 08:57
- guil31
- Participant actif
- Date d'inscription: 22 Jan 2013
- Messages: 79
Re: [PostgresSQL] : COPY TO seulement si ma table est non vide
Ok c'est bien ce qu'il me semblait: pas si simple que ca en pur sql.
Bon soit je vais livrer des tables vides, soit je vais passer par une fonction en PL/pgsql.
Hors ligne
Pages: 1
- Sujet précédent - [PostgresSQL] : COPY TO seulement si ma table est non vide - Sujet suivant