Vous n'êtes pas identifié(e).
Pages : 1
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
Vous avez certainement oublié de faire un "ALTER SEQUENCE nouvelletable_identifiant_seq OWNED BY nouvelletable.identifiant;"
Guillaume.
Hors ligne
Bonjour,
merci de votre réponse
C'est effectivement mon erreur.
Hors ligne
Pages : 1