Pages: 1
- Sujet précédent - Fonction Update sur plusieurs tables sous postgres/postgis - Sujet suivant
#1 Mon 02 August 2010 09:41
- stephanie.guillaumin
- Juste Inscrit !
- Date d'inscription: 13 Oct 2009
- Messages: 3
Fonction Update sur plusieurs tables sous postgres/postgis
Bonjour,
J'ai plusieurs base de données sous postgres/postgis composées chacune de plusieurs tables et je souhaiterai utiliser la fonction update sur plusieurs tables de manière simultanée dans la même.
L'objectif est de mettre à jour une colonne identique dans chacune des tables.
Merci de votre aide.
Hors ligne
#2 Mon 02 August 2010 09:55
Re: Fonction Update sur plusieurs tables sous postgres/postgis
On m'arrêtera si je me trompe, mais ce n'est pas l'intérêt des jointures ?
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#3 Mon 02 August 2010 10:18
- stephanie.guillaumin
- Juste Inscrit !
- Date d'inscription: 13 Oct 2009
- Messages: 3
Re: Fonction Update sur plusieurs tables sous postgres/postgis
L'objectif serait de remplir une colonne (champ code INSEE) sur toutes les tables d'une base sans faire appel à une jointure.
Exemple :
Update "nom de table"
Set "nom du champs"=83000
where "nom du champs" is null
En vu de cet exemple je souhaite l'appliquer à plusieurs tables en même temps
Hors ligne
#4 Mon 02 August 2010 10:35
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Fonction Update sur plusieurs tables sous postgres/postgis
L'objectif serait de remplir une colonne (champ code INSEE) sur toutes les tables d'une base sans faire appel à une jointure.
Exemple :
Update "nom de table"
Set "nom du champs"=83000
where "nom du champs" is null
En vu de cet exemple je souhaite l'appliquer à plusieurs tables en même temps
Bonjour,
Plusieurs bases, ou plusieurs tables ?
Sur plusieurs bases en meme temps, il faudra passer par un langage style python, java, ruby ou autre (plpython permet de faire ca en etant tres lié a la base) et scripter les updates sur les tables.
Sur plusieurs tables d'une meme base en meme temps, il faudra aussi scripter, mais un langage de base de données suffit: plpgsql, pl/java, plpython: on peut imaginer une fonction qui recoit en parametre une liste de table, une liste de colones a mettre a jour et une liste de valeur.
ou une requete trouvant les tables depuis le catalogue postgresql, si ces tables ont des noms "identifiables".
Nicolas
Hors ligne
#5 Mon 02 August 2010 10:43
- stephanie.guillaumin
- Juste Inscrit !
- Date d'inscription: 13 Oct 2009
- Messages: 3
Re: Fonction Update sur plusieurs tables sous postgres/postgis
Sur plusieurs tables d'une meme base en meme temps, il faudra aussi scripter, mais un langage de base de données suffit: plpgsql, pl/java, plpython: on peut imaginer une fonction qui recoit en parametre une liste de table, une liste de colones a mettre a jour et une liste de valeur.
ou une requete trouvant les tables depuis le catalogue postgresql, si ces tables ont des noms "identifiables".
C'est exactement cela que je veux faire mais comment faire pour insérer cette fonction dans l'update. La requete trouvant les tables depuis le catalogue postgres est la suivante :
select tablename from pg_tables
where schema name=public
Ensuite comment relier cette requete à l'update afin de l'appliquer sur les tables.
Merci
Hors ligne
#6 Mon 02 August 2010 11:20
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Fonction Update sur plusieurs tables sous postgres/postgis
Sur plusieurs tables d'une meme base en meme temps, il faudra aussi scripter, mais un langage de base de données suffit: plpgsql, pl/java, plpython: on peut imaginer une fonction qui recoit en parametre une liste de table, une liste de colones a mettre a jour et une liste de valeur.
ou une requete trouvant les tables depuis le catalogue postgresql, si ces tables ont des noms "identifiables".
C'est exactement cela que je veux faire mais comment faire pour insérer cette fonction dans l'update. La requete trouvant les tables depuis le catalogue postgres est la suivante :
select tablename from pg_tables
where schema name=public
Ensuite comment relier cette requete à l'update afin de l'appliquer sur les tables.
Merci
Tel que je le vois, ca serait le contraire: la fonction lance les update:
create function batchUpdate(cols, vals)...
for col in cols LOOP
update table set col = vals[...];
end loop
Nicolas
Hors ligne
Pages: 1
- Sujet précédent - Fonction Update sur plusieurs tables sous postgres/postgis - Sujet suivant