IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

[pgAdminIII] Comment ignorer les erreurs de script


Sujet :

PostgreSQL

  1. #1
    Membre régulier Avatar de Escandil
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2003
    Messages : 84
    Points : 70
    Points
    70
    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 )

  2. #2
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Points : 331
    Points
    331
    Par défaut
    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
    L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
    Pierre Desproges

  3. #3
    Membre régulier Avatar de Escandil
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    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

  4. #4
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Points : 331
    Points
    331
    Par défaut
    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
    L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
    Pierre Desproges

  5. #5
    Membre régulier Avatar de Escandil
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    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 ?

  6. #6
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Points : 331
    Points
    331
    Par défaut
    http://www.linux-france.org/article/serveur/psql/Postgres-7.2/x265.html
    L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
    Pierre Desproges

  7. #7
    Membre régulier Avatar de Escandil
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2003
    Messages : 84
    Points : 70
    Points
    70
    Par défaut
    Merci papy_tergnier, même si je vais devoir reprendre mon code pour passer par COPY

Discussions similaires

  1. [WD18] Comment ignorer les erreurs de certificats sur une requête HTTP
    Par zouzoukha dans le forum WinDev
    Réponses: 3
    Dernier message: 14/05/2015, 14h19
  2. [MySQL] Ignorer les erreurs de Mysql et continuer à executer mon script
    Par Ellia dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/06/2012, 11h15
  3. Comment voir les erreurs dans les scripts Ironpython?
    Par PomFritz dans le forum Sharpdevelop
    Réponses: 0
    Dernier message: 02/03/2011, 20h11
  4. Comment masquer les erreurs de script dans un WebBrowser ?
    Par mont5piques dans le forum Web & réseau
    Réponses: 2
    Dernier message: 11/05/2008, 17h32
  5. Réponses: 3
    Dernier message: 21/06/2007, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo