banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 19 October 2015 14:34

lutinbleu17
Participant occasionnel
Date d'inscription: 30 Sep 2015
Messages: 12

Récupérer une table dans un fichier de sauvegarde [PostGIS]

Bonjour à tous,

Suite à une mauvaise manipulation avec le script UPDATE, j'ai écrasé une table existante dans ma BDD sous PostGIS.
Je voulais initialement ajouter un nouvel enregistrement à ma table, mais tous les enregistrements existants ont été remplacé par les valeurs de ma requête :-/

Question : comment récupérer les valeurs de ma table, et annuler cette requête ?

J'ai essayé clic droit sur ma table -> Restaurer.
Cela me renvoi une erreur de type "Le process a retourné le code de sortie 1" car j'ai une colonne avec des identifiants uniques déjà existants.

Pour contourner ce problème, j'ai essayé d'effacer manuellement les enregistrements de cette table pour ensuite faire une restauration à l'aide du fichier .backup.
Malheureusement, j'ai un nouveau message d'erreur car cette table est liée par une clé étrangère à une autre table.
ERREUR: UPDATE ou DELETE sur la table "ma_table_1" viole la contrainte de clé étrangère ...
DÉTAIL: la clé est toujours référencée à partir de la table "ma_table_2"


Alors, est-il possible d'ouvrir mon fichier de sauvegarde .backup pour voir ma table telle qu'elle était avant la requête ?
Je pourrais retaper les anciennes valeurs à la main, il n'y a qu'une dizaine de lignes...

Merci et bon début de semaine !

Hors ligne

 

#2 Mon 19 October 2015 15:09

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Récupérer une table dans un fichier de sauvegarde [PostGIS]

Bonjour,

À ta place je créerai une nouvelle base de données et importerai la ou les 2 tables nécessaires.

Concernant ton problème initial, tu devrais utiliser :
COMMIT;

-- faire ta requête ici
-- vérifier le résultat

ROLLBACK; -- si erreur

ou

COMMIT; -- si tout est ok

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Mon 19 October 2015 16:14

lutinbleu17
Participant occasionnel
Date d'inscription: 30 Sep 2015
Messages: 12

Re: Récupérer une table dans un fichier de sauvegarde [PostGIS]

Bonjour Yves,

J'avais tenté de faire une nouvelle base, puis d'importer la sauvegarde.
Cela m'avait affiché une autre erreur...
Suite à ton post, j'ai tout de même ouvert cette base, et en fait la copie c'était bien faite !
Je ne sais pas par quelle miracle vu le message d'erreur, mais l'essentiel est là, j’ai accès à mon fichier de sauvegarde.

Bonne fin de journée !

Hors ligne

 

#4 Mon 19 October 2015 16:16

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1230
Site web

Re: Récupérer une table dans un fichier de sauvegarde [PostGIS]

Bonjour,

concernant les transactions, je pense qu'Yves voulait dire

Code:

BEGIN;

-- faire ta requête ici
-- vérifier le résultat

ROLLBACK; -- si erreur

ou

COMMIT; -- si tout est ok

Dernière modification par MathieuB (Mon 19 October 2015 17:16)


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#5 Mon 19 October 2015 16:32

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Récupérer une table dans un fichier de sauvegarde [PostGIS]

Merci Mathieu wink


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

Pied de page des forums

Powered by FluxBB