Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/07/2005, 18h03   #1
Nouveau Membre du Club
 
Avatar de Escandil
 
Inscription : mai 2003
Messages : 63
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mai 2003
Messages : 63
Points : 30
Points : 30
Envoyer un message via MSN à Escandil
Par défaut [pgAdminIII] Comment ignorer les erreurs de script

Hello

Quand je lance un script à l'aide pgAdmin (En chargeant le fichier sous pgAdmin Query), la moindre erreur bloque l'ensemble du script.

Or je créé des fichiers volumineux de création de table, et je souhaiterais soit pouvoir continuer l'execution du script dans le cas de tables existantes, soit ajouter une condition pour ignorer la requete de creation de table dans le cas ou cette dernière existe.

J'ai bien chercher dans le forum, mais je n'ai trouvé aucune information sur le sujet (question trop simple peut-être )
Escandil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2005, 10h09   #2
Membre confirmé
 
Inscription : septembre 2003
Messages : 302
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2003
Messages : 302
Points : 251
Points : 251
je ne pense pas que ce soit du à pgAdmin mais à PostGreSQL lui même car si il y une erreur il arrête la poursuite du script. Ce qui me parait très logique

donc c'est à toi de modifier ton script pour "droper" les tables existantes avant la nouvelle création
papy_tergnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2005, 10h51   #3
Nouveau Membre du Club
 
Avatar de Escandil
 
Inscription : mai 2003
Messages : 63
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mai 2003
Messages : 63
Points : 30
Points : 30
Envoyer un message via MSN à Escandil
Je n'ai pas donné assez de détails

Mea culpa.

Je ne peux pas droper les tables avant leur création.

Petite explication:

A l'aide d'un outils développer par mes soins, j'extrais des informations que j'envoie dans une base PostGis. Pour cela, je créé deux fichiers de script, le premier créé les tables et le second les remplis. Rien que de très classique, le problème réside dans mes données en entrées: elles sont réparties dans plusieurs fichiers.

Or quand je traite l'ensemble des fichiers, et qu'ensuite je lance les scripts je n'ai bien entendu aucun probleme, mais si je dois par la suite intégré un nouveau fichier, ce dernier peux comporter des tables communes avec les précedents, mais aussi des tables qui lui sont propres. Ainsi le fichier que je génère comportera des erreures dues aux tables existantes, et ne crééra donc pas les nouvelles tables.

Bien entendu, je pourrais créé un fichier qui ne comporte que les nouvelles tables, mais dans le cas d'un traitement massif avec un nombre important de fichiers en entrée, je vais obtenir autant de fichier de création, et je souhaite l'éviter.

Voila, je prends tout type de conseils, s'il n'est pas possible de 'forcer' un script, je modifierai mon outils, mais si je peux éviter une surabondance de fichier c'est mieux
Escandil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2005, 11h16   #4
Membre confirmé
 
Inscription : septembre 2003
Messages : 302
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2003
Messages : 302
Points : 251
Points : 251
Pour ton 2nd fichier qui contient des tables créees et d'autres non créees, il faudrait que tu dropes uniquement les fichiers qui sont déjà crées.

Je me doute que si tu as pleins de fichiers ça n'est pas la solution adéquate mais je ne pense que tu ne peux pas te forcer la création de table (ou alors je suis aussi preneur de la technique)

Si tu as une multitude de tables tu peux peut être faire un outil qui va parser les 2 fichiers pour te donner les tables qui sont simultanément dans les 2 fichiers et dans ce cas là tu fais un 3e fichier qui contiendra
avec toutes tes tables en double.

Pour l'instant je ne vois pas d'autre solutions plus simple
papy_tergnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2005, 11h31   #5
Nouveau Membre du Club
 
Avatar de Escandil
 
Inscription : mai 2003
Messages : 63
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mai 2003
Messages : 63
Points : 30
Points : 30
Envoyer un message via MSN à Escandil
En fait je peux dropper toutes les tables et tout réinsérer, mais le temps de traitement va fortement en pâtir.

Je préfère ne pas droper les tables existantes pour conserver les données qu'elles contiennent

En réalité je cherchais une solution simple mais apparemment il n'en n'existe pas

Je laisse le thread ouvert des fois qu'il existe une solution, en attendant je vais continuer a dropper massivement et réinsérer massivement

Question subsidiaire : Quelle est la mèthode la plus rapide entre le INSERT INTO et le COPY ? L'instruction COPY n'est elle pas simplement une procedure qui va créé des insert ?
Escandil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2005, 11h36   #6
Membre confirmé
 
Inscription : septembre 2003
Messages : 302
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2003
Messages : 302
Points : 251
Points : 251
http://www.linux-france.org/article/serveur/psql/Postgres-7.2/x265.html
papy_tergnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2005, 12h03   #7
Nouveau Membre du Club
 
Avatar de Escandil
 
Inscription : mai 2003
Messages : 63
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mai 2003
Messages : 63
Points : 30
Points : 30
Envoyer un message via MSN à Escandil
Merci papy_tergnier, même si je vais devoir reprendre mon code pour passer par COPY
Escandil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h22.


 
 
 
 
Partenaires

Hébergement Web