Vous n'êtes pas identifié(e).

#1 28/06/2012 08:09:52

mortimer.pw
Membre

Pg_dump sans les séquences

Bonjour à tous,

Je travaille sur des bases en 8.4 et 9.0 sous CentOs 5.4

Je fais un pg_dump
     - a   pour exporter uniquement les data
     -- inserts   pour avoir les requêtes d'INSERT
     -T  pour exclure certaines tables

Mon problème, j'ai exclu la table o_f, mais mon dump contient tout de même les lignes suivantes :
--
-- Name: o_f_id_seq; Type: SEQUENCE SET; Schema: geo; Owner: postgres
--
SELECT pg_catalog.setval('o_f_id_seq', 12702, true);

Lorsque je vais importer dans une base vierge, cela va donc positionner ma séquence à 12702, alors que ma table est vide et que je veux démarrer à 1.

Est-il possible de faire un pg_dump sans les séquences ?

Question supplémentaire : est-il possible de faire de l'export sélectif, comme avec Oracle (clause Query) ?

Merci pour votre aide.

Dernière modification par mortimer.pw (28/06/2012 08:21:52)

Hors ligne

#2 28/06/2012 16:35:52

rjuju
Administrateur

Re : Pg_dump sans les séquences

Bonjour,
il n'est pas possible d'enlever toutes les séquences d'un dump, sauf en utilisant un motif tel que *_seq, mais cela peut être dangereux si des séquences ne sont pas de ce format de nom, ou si d'autres tables finissent par _seq. Sinon vous pouvez toujours rajouter une autre option -T pour la séquence à enlever. Attention, la séquence ne sera pas crée en utilisant le script, ce qui est différent d'avoir une séquence à 1.



Il est possible de faire un export selectif avec COPY, ex:
COPY (select * from ... where ...) TO '/chemin/vers/fichier.data'
Voir la doc: http://docs.postgresqlfr.org/9.1/sql-copy.html

Hors ligne

Pied de page des forums