PostgreSQL transfert de données d'une table a une table fille

Le
Etienne
Salut

J'ai commis une petite boulette lors de l'import de données dans ma base
de données..

j'ai créer une table contact
CREATE contact (
"idcontact" serial,

);

de cette table hérite plusieurs tables
entre autre la table member
CREATE member (

) INHERITS (contact);


j'ai importer des membres dans la table contact

Comment puis-je les déplacer dans la table member à présent sachant
qu'il m'est impossible de les supprimer pour les ré-inserer

La seule solution qu'il me vient a l'esprit serait de backuper la base
modifier dans l'archive et restaurer. Mais bon si je pouvais éviter d'en
arriver là

Merci
Etienne
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yliur
Le #22651951
Le Wed, 06 Oct 2010 11:35:22 +0200
Etienne
Salut

J'ai commis une petite boulette lors de l'import de données dans ma
base de données..

j'ai créer une table contact
CREATE contact (
"idcontact" serial,
...
);

de cette table hérite plusieurs tables
entre autre la table member
CREATE member (
...
) INHERITS (contact);


j'ai importer des membres dans la table contact...

Comment puis-je les déplacer dans la table member à présent sachant
qu'il m'est impossible de les supprimer pour les ré-inserer...



Je ne comprends pas bien la contrainte. Il faut les déplacer sans les
supprimer-réinsérer ?

Est-ce que toutes les lignes insérées dans contact sont à déplacer vers
member ?

Est-ce qu'aucune information n'a été perdue lors de l'insertion dans
contact (qui peut contenir moins d'informations que member) ?

Est-ce qu'un simple INSERT INTO member SELECT ... FROM contact ne
ferait pas l'affaire ?


La seule solution qu'il me vient a l'esprit serait de backuper la
base modifier dans l'archive et restaurer. Mais bon si je pouvais
éviter d'en arriver là...

Merci
Etienne
Etienne
Le #22652811
Le 06/10/2010 22:25, Yliur a écrit :
Je ne comprends pas bien la contrainte. Il faut les déplacer sans les
supprimer-réinsérer ?



Oui afin de me pas perdre la valeur du serial de l'objet pere.

Est-ce que toutes les lignes insérées dans contact sont à déplacer vers
member ?



Oui.
Il existe bien d'autres données dans d'autre table filles, mais tout ce
que j'ai mis dans contact doit aller dans member.

Est-ce qu'aucune information n'a été perdue lors de l'insertion dans
contact (qui peut contenir moins d'informations que member) ?



non rien du tout.

Est-ce qu'un simple INSERT INTO member SELECT ... FROM contact ne
ferait pas l'affaire ?



Et bien non car cela créerai de nouveau ID.
Et là c'est pas bon.

Mais bon. Apres avoir cherché toute la journée d'hier j'ai attaqué ma
solution a base de modification de l'archive...
Manipuler un fichier de 3 Go avec Vi c'est un peu du sport, mais ca n'a
finalement pas été trop compliqué.

J'ai juste fusionner les COPY contact avec le COPY member
j'ai du un peu modifier des champs mais finalement ca a été assez simple...

Ceci dit, il serait Intéressant d'implémenter une telle fonction dans
postgreSQL.
Ca peut rééllement être utile et pas seulement en cas d'erreur.

Etienne
Merci.
Yliur
Le #22654001
> Est-ce qu'un simple INSERT INTO member SELECT ... FROM contact ne
> ferait pas l'affaire ?

Et bien non car cela créerai de nouveau ID.
Et là c'est pas bon.



Hum... Pourquoi est-ce que ça donnerait un nouvel id ? Est-ce lié à
l'héritage (que je ne connais pas bien) ?

Par défaut si on spécifie une valeur pour la colonne id elle est
utilisée plutôt qu'une nouvelle issue de la série.
Publicité
Poster une réponse
Anonyme