Bonjour à tous,
J'ai une table qui contient des colonnes "name:es", "name:fr", "name:it" etc. que j'aimerais renommer en "es", "fr", "it".
Pour éviter de faire un script que 10.000 lignes (car j'ai plusieurs tables avec ces colonnes), j'ai recensé les codes iso dans une table à par, nommée iso_codes.
Mais j'ai un problème pour faire une fonction qui va boucler sur la table iso_codes afin de lancer les renommages de champs :
Mais ça ne fonctionne pas, j'ai l'impression qu'il n'y a que les tables que l'on peut référencer par une chaîne de caractère, pas les colonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE OR REPLACE FUNCTION fct_rename_columns() RETURNS VOID AS ' DECLARE r iso_codes%rowtype; BEGIN FOR r IN SELECT * FROM iso_codes LIMIT 1 LOOP ALTER TABLE ma_table RENAME COLUMN name:''||r.iso||''; END LOOP; END; 'language 'plpgsql';
Comment je peux faire ?
Merci à vous,
A bientôt
Partager