Prima di spiegare come fare questo, vorrei fortemente suggerire di NON farlo.
In PostgreSQL, se i nomi di tabella o colonna sono non quotate, come:
SELECT Name FROM MyTable WHERE ID = 10
Effettivamente automaticamente ripiegati in minuscolo prima, per interrogare sopra è identica a:
SELECT name FROM mytable WHERE id = 10
Se dovresti convertire tutti i nomi in maiuscolo, questa dichiarazione non funzionerà:
SELECT NAME FROM MYTABLE WHERE ID = 10
Si dovrà raddoppiare-citazione ogni singolo nome in questa query per farlo funzionare:
SELECT "NAME" FROM "MYTABLE" WHERE "ID" = 10
Se, d'altra parte, si utilizza PostgreSQL in basso a caso standard unico accordo, è possibile utilizzare ogni caso combinazione e funzionerà finché non si cita alcun nome.
Ora, se ancora insistete per convertire in maiuscolo, è possibile farlo dal dumping lo schema del database in un file utilizzando pg_dump --schema-only
.
Dopo aver fatto questo, controllare tutti CREATE TABLE
dichiarazioni e costruire appropriate ALTER TABLE
dichiarazioni basate su questa discarica - si dovrà scrivere alcuni script (Perl o Python) per farlo.
In alternativa, è possibile leggere INFORMATION_SCHEMA.TABLES e/o INFORMATION_SCHEMA.COLUMNS e anche costruire ed eseguire le istruzioni appropriate ALTER TABLE
.
I nomi di colonna apparentemente a virgolette in "CREATE TABLE" creano nomi di colonna contenenti i caratteri di citazione, ma * still * diminuisce il tutto. – weberc2
@ weberc2: questo è semplicemente falso. Prova SQLFiddle: http://sqlfiddle.com/#!17/de97a/1 – mvp
Sì, sembra che il mio editor di testo inserisse citazioni intelligenti. Errore mio. – weberc2