Voordat ik uitleg hoe ik dit moet doen, zou ik sterk stel voor dat NIET te doen.
In PostgreSQL, als tabel- of kolomnamen niet aangehaald zijn, zoals:
SELECT Name FROM MyTable WHERE ID = 10
Ze werden in feite automatisch gevouwen naar kleine letters eerst, dus de bovenstaande zoekopdracht is identiek aan:
SELECT name FROM mytable WHERE id = 10
Als u alle namen in hoofdletters zou omzetten, zal deze uitspraak NIET werken :
SELECT NAME FROM MYTABLE WHERE ID = 10
U moet elke afzonderlijke naam in deze zoekopdracht dubbel citeren om het te laten werken:
SELECT "NAME" FROM "MYTABLE" WHERE "ID" = 10
Als u daarentegen de standaard PostgreSQL-overeenkomst voor alleen kleine letters gebruikt, kunt u elke combinatie van hoofdletters gebruiken en het zal werken zolang u geen naam citeert.
Als u er nu nog steeds op staat om naar hoofdletters te converteren, kunt u dat doen door uw databaseschema in een bestand te dumpen met behulp van pg_dump --schema-only
.
Nadat je dat hebt gedaan, controleer je alle CREATE TABLE
instructies en maak de juiste ALTER TABLE
statements gebaseerd op deze dump - je zult een script (Perl of Python) moeten schrijven om dat te doen.
U kunt ook INFORMATION_SCHEMA.TABLES
lezen en/of INFORMATION_SCHEMA.COLUMNS
en bouw en voer ook de juiste ALTER TABLE
uit verklaringen.