PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Changer les noms des colonnes de table en majuscules dans postgres

Avant d'expliquer comment faire cela, je voudrais fortement suggère de NE PAS faire cela.

Dans PostgreSQL, si les noms de table ou de colonne ne sont pas entre guillemets, comme :

SELECT Name FROM MyTable WHERE ID = 10

Ils sont en fait automatiquement pliés en minuscules d'abord, donc la requête ci-dessus est identique à :

SELECT name FROM mytable WHERE id = 10

Si vous deviez convertir tous les noms en majuscules, cette instruction ne fonctionnera PAS :

SELECT NAME FROM MYTABLE WHERE ID = 10

Vous devrez mettre entre guillemets chaque nom dans cette requête pour que cela fonctionne :

SELECT "NAME" FROM "MYTABLE" WHERE "ID" = 10

Si, d'un autre côté, vous utilisez uniquement l'accord standard PostgreSQL en minuscules, vous pouvez utiliser n'importe quelle combinaison de casse et cela fonctionnera tant que vous ne citerez aucun nom.

Maintenant, si vous insistez toujours pour convertir en majuscules, vous pouvez le faire en vidant votre schéma de base de données dans un fichier en utilisant pg_dump --schema-only .

Après avoir fait cela, cochez tous les CREATE TABLE et construisez ALTER TABLE approprié instructions basées sur ce vidage - vous devrez écrire un script (Perl ou Python) pour le faire.

Alternativement, vous pouvez lire INFORMATION_SCHEMA.TABLES et/ou INFORMATION_SCHEMA.COLUMNS et également construire et exécuter ALTER TABLE approprié déclarations.