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

#1 28/02/2014 12:26:13

Différence d'export de deux tables avec pg_dump

Bonjour à tous,

J'ai constaté lors de la génération du fichier sql de sauvegarde avec pg_dump, une différence de syntaxe/logique dans mon export entre deux tables. Je m'explique

TABLE 1 :

CREATE TABLE anciennetable (
    identifiant bigint NOT NULL )
 
CREATE SEQUENCE anciennetable_identifiant_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER SEQUENCE anciennetable_identifiant_seq OWNED BY anciennetable.identifiant;

TABLE 2

CREATE TABLE nouvelletable (
    identifiant DEFAULT nextval('nouvelletable_identifiant_seq'::regclass) NOT NULL )

Lors de la restauration de la deuxième table j'ai un message d'erreur car la requête de création de la séquence n'a pas été créée.
Après quelques investigations, j'ai trouvé une différence dans la méthode de création des tables

J'ai créé la table 1 comme ceci :

CREATE TABLE anciennetable ( identifiant bigint SERIAL )

et la table 2 comme ceci :

CREATE TABLE nouvelletable (   identifiant DEFAULT nextval('nouvelletable_identifiant_seq'::regclass)

J'en conclu que le fait de ne pas avoir utilisé la "méthode" SERIAL me pose maintenant problème lors de mes exports.
J'ai tenté de trouver une solution en passant par pg_catalog mais sans succès.
Merci de m'apporter vos éclairages

ps : en passant dans le pg_dump le paramètre --table "sequence_table2" ça fonctionne mais ça ne me satisfait pas du tout !

Hors ligne

#2 13/03/2014 00:17:22

gleu
Administrateur

Re : Différence d'export de deux tables avec pg_dump

Vous avez certainement oublié de faire un "ALTER SEQUENCE nouvelletable_identifiant_seq OWNED BY nouvelletable.identifiant;"


Guillaume.

Hors ligne

#3 13/03/2014 09:04:14

Re : Différence d'export de deux tables avec pg_dump

Bonjour,
merci de votre réponse
C'est effectivement mon erreur.

Hors ligne

Pied de page des forums