PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Cambia i nomi delle colonne della tabella in maiuscolo in postgres

Prima di spiegare come fare, lo farei fortemente suggerire di NON farlo.

In PostgreSQL, se i nomi di tabelle o colonne non sono tra virgolette, come:

SELECT Name FROM MyTable WHERE ID = 10

In realtà si sono piegati automaticamente in minuscolo in primo luogo, quindi la query sopra è identica a:

SELECT name FROM mytable WHERE id = 10

Se dovessi convertire tutti i nomi in maiuscolo, questa affermazione NON funzionerà :

SELECT NAME FROM MYTABLE WHERE ID = 10

Dovrai citare ogni singolo nome in questa query per farlo funzionare:

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

Se, d'altra parte, utilizzi l'accordo PostgreSQL standard solo minuscolo, puoi utilizzare qualsiasi combinazione di maiuscole e minuscole e funzionerà purché non citi alcun nome.

Ora, se insisti ancora per convertire in maiuscolo, puoi farlo scaricando lo schema del database in un file usando pg_dump --schema-only .

Dopo averlo fatto, controlla tutti i CREATE TABLE istruzioni e costruire ALTER TABLE dichiarazioni basate su questo dump - dovrai scrivere uno script (Perl o Python) per farlo.

In alternativa, puoi leggere INFORMATION_SCHEMA.TABLES e/o INFORMATION_SCHEMA.COLUMNS e anche costruire ed eseguire ALTER TABLE appropriato dichiarazioni.