Tu peux utiliser https://docs.postgresql.fr/8.1/catalog-pg-attribute.html pour 
identifier les colonnes concernées
La requête suivante va te générer les requêtes qui vont bien :

select concat('ALTER TABLE ',nspname,'.',t.relname,' RENAME COLUMN 
"',a.attname,'" TO "',replace(a.attname,':','_'),'"') from pg_attribute a join 
pg_class t on a.attrelid=t.oid  join pg_namespace n on t.relnamespace=n.oid 
where attname like '%:%';

Denis

-----Message d'origine-----
De : Tony Emery via Talk-fr [mailto:talk-fr@openstreetmap.org] 
Envoyé : jeudi 4 avril 2019 17:31
À : talk-fr@openstreetmap.org
Cc : Tony Emery <tony.em...@yahoo.fr>
Objet : [OSM-talk-fr] OSM et postgresql

Bonjour à tous,

J'ai une petite question technique concernant l'exploitation des clés 
OpenStreetMap dans PosgreSQL.
Je voudrais modifier le noms des colonnes qui contiennent des ":" en les 
remplaçant par des "_", par exemple.

Et plutôt que d'avoir des "ALTER TABLE public.habillage_osm_point RENAME COLUMN 
"addr:housenumber" TO "addr_housenumber"; et faire ça pour chaque clé, je 
voudrais avoir :
"Bon, Postgresql, à chaque fois que tu vois un ":" dans le nom d'une colonne de 
la table public.habillage_osm_point, tu le remplaces par "_" et avec le sourire 
s'il te plait".

Je suppose qu'il faut une petite fonction avec une boucle mais je ne vois pas 
bien comment la monter.

Merci d'avance,



-----
Tony EMERY
Administrateur OpenStreetMap.fr
Mandataire Grand Sud-Est
Géomaticien & chef de projets
--
Sent from: http://gis.19327.n8.nabble.com/France-f5380434.html

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr
-------
Ce message et toutes les pièces jointes sont établis à l'intention exclusive de 
ses destinataires et sont confidentiels. L'intégrité de ce message n'étant pas 
assurée sur Internet, la SNCF ne peut être tenue responsable des altérations 
qui pourraient se produire sur son contenu. Toute publication, utilisation, 
reproduction, ou diffusion, même partielle, non autorisée préalablement par la 
SNCF, est strictement interdite. Si vous n'êtes pas le destinataire de ce 
message, merci d'en avertir immédiatement l'expéditeur et de le détruire.
-------
This message and any attachments are intended solely for the addressees and are 
confidential. SNCF may not be held responsible for their contents whose 
accuracy and completeness cannot be guaranteed over the Internet. Unauthorized 
use, disclosure, distribution, copying, or any part thereof is strictly 
prohibited. If you are not the intended recipient of this message, please 
notify the sender immediately and delete it. 
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr

Répondre à