PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 09/12/2009 16:36:43

sophonie
Membre

Migration du contenu d'un champ d'une table vers une autre table

Bonjour à tous et à toutes,

J'ai 2 tables, une table oai_records contenant plusieurs champs (ici 2 champs nous interresse, ie oai_identifier et ap_spatial).

Une table temp_records que j'ai crée et contenant 2 champs identifier et spatial.
Dans le champ ap_spatial de la table oai_records sont stockés les coordonnées de géoréférencement du tuple, mais ces dernières sont en Lambert 3 ==> aberration de l'affichage avec Google Map qui ne gère que du Lambert 2 (le problème des modules de cartographie du Web 2.0)

Solution : Dans la table oai_temp, j'ai importé les coordonnées Lambert 2 de chacun des tuples.
Ainsi l'unique correspondance entre les tuples est le champ oai_identifier(table oai_records) et identifier(table temp_records) Le but est de migrer le contenu du champ spatial de la table oai_temp dans le champ ap_spatial de la table oai_records et ce (identifier par identifier)

La requête suivante :
SELECT `oai_identifier` , `identifier` , `ap_spatial` , `spatial`
FROM oai_records
INNER JOIN temp_records ON oai_identifier = identifier

me renvoi bien tous les records ayant une correspondance dans les 2 tables (INNER JOIN)

Table oai_records                                                        Table temp_records
oai_identifier     ap_spatial                                          identifier            spatial
IA00024637        0358840 3312540                               IA00024637        -0.783333 45.283333

Faut-il passer une procédure stocké pour effectuer cette migration?

Merci d'avance.
Sophonie.

Hors ligne

#2 09/12/2009 16:56:50

Marc Cousin
Membre

Re : Migration du contenu d'un champ d'une table vers une autre table

UPDATE oai_records SET oai_records.ap_spatial=temp.spatial FROM temp_records WHERE oai_records.oai_identifier=temp_records.identifier

?


Marc.

Hors ligne

#3 09/12/2009 17:02:42

sophonie
Membre

Re : Migration du contenu d'un champ d'une table vers une autre table

Bonjour Marc Cousin,

Dans ta requête que je n'ai pas encore testé, je lis ceci :

 =temp.spatial

ne serait-ce pas plutôt temp_records à la place de temp, "c'est une question"

Sophonie.

Dernière modification par sophonie (09/12/2009 17:07:28)

Hors ligne

#4 09/12/2009 17:13:36

sophonie
Membre

Re : Migration du contenu d'un champ d'une table vers une autre table

Je ne comprends pas cette requête qui d'ailleurs me renvoi un message d'erreur. En effet,
la requête UPDATE fais appel à la table temp_records alors qu'elle porte sur la table oai_records.

Hors ligne

#5 09/12/2009 19:00:19

Marc Cousin
Membre

Re : Migration du contenu d'un champ d'une table vers une autre table

C'était bien sûr temp_record.

Quel est le message d'erreur ? (je n'ai pas pu la tester avant de la poster)


Marc.

Hors ligne

Pied de page des forums