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 10/04/2006, 17h29   #1
Invité de passage
 
Inscription : octobre 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 10
Points : 2
Points : 2
Par défaut Tables temporaires hors transaction ?

Bonjour à tous,

j'ai un souci avec mes tables temporaires, ou plus exactement avec mes transactions. Je m'explique.

J'ai un traitement (une procédure stockée) qui est susceptible de générer une exception si un ensemble de données est non-vide. Jusque là tout va bien.

Le problème est que mes utilisateurs aimeraient bien "voir" le contenu de cet ensemble de données s'il est non vide. Impossible de le sauver dans une table temporaire, car celle-ci est bien sûr rollbacked au moment où l'exception est déclenchée.

J'ai bien sûr la solution de regénérer cet ensemble de données après, mais cela est couteux en temps (gros traitement).

Existe-t'il donc un moyen de stocker un ensemble de données de façon non transactionnelle (hors transaction) ?

Merci pour votre aide :-)
vgaudeul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 18h28   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

es-tu obligé de faire un rollback dans ta procédure stockée ?
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2006, 20h08   #3
Invité de passage
 
Inscription : octobre 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 10
Points : 2
Points : 2
euh... oui, je suis obligé. Je suis tributaire de code existant, d'applications clientes existantes, et d'une transaction relativement complexe où bcp de traitements sont faits.

Je ne peux pas recoder toutes ces applications malheureusement :-)
vgaudeul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2006, 09h13   #4
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
La seule solution "simple" que je vois, serait de placer ces enregistrements dans une table temporaire, et de les stocker sur fichier avec un COPY TO. Puis, dans une autre procédure, de les recharger dans une table temporaire avec un COPY FROM.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2006, 10h02   #5
Invité de passage
 
Inscription : octobre 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 10
Points : 2
Points : 2
Pour l'instant, c'est la seule "solution" que je vois aussi, car il ne semble pas possible de créer des tables "unlogged" avec PostgreSQL.

Par contre, le COPY FROM et COPY TO ne sont utilisables que par les superusers lorsque ces commandes font référence à des noms de fichiers.

Zut alors ! ;-)
vgaudeul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2006, 11h42   #6
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
...ou alors une fonction d'extension écrite en C.
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather 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 19h04.


 
 
 
 
Partenaires

Hébergement Web