Zanim wyjaśnię, jak to zrobić, zdecydowanie sugeruj, aby tego NIE robić.
W PostgreSQL, jeśli nazwy tabel lub kolumn nie są ujęte w cudzysłów, na przykład:
SELECT Name FROM MyTable WHERE ID = 10
W rzeczywistości są automatycznie złożone do małych liter po pierwsze, więc powyższe zapytanie jest identyczne z:
SELECT name FROM mytable WHERE id = 10
Jeśli miałbyś przekonwertować wszystkie nazwy na wielkie litery, to stwierdzenie NIE zadziała :
SELECT NAME FROM MYTABLE WHERE ID = 10
Aby to zadziałało, będziesz musiał umieścić w cudzysłowie każde imię i nazwisko w tym zapytaniu:
SELECT "NAME" FROM "MYTABLE" WHERE "ID" = 10
Z drugiej strony, jeśli używasz standardowej umowy PostgreSQL zawierającej tylko małe litery, możesz użyć dowolnej kombinacji wielkości liter i będzie działać, o ile nie zacytujesz żadnej nazwy.
Teraz, jeśli nadal nalegasz na konwersję na wielkie litery, możesz to zrobić, zrzucając schemat bazy danych do pliku za pomocą pg_dump --tylko schemat
.
Po wykonaniu tych czynności sprawdź wszystkie CREATE TABLE
instrukcji i skonstruuj odpowiednie ALTER TABLE
oświadczenia oparte na tym zrzucie - będziesz musiał napisać jakiś skrypt (Perl lub Python), aby to zrobić.
Możesz też przeczytać INFORMATION_SCHEMA.TABLES
i/lub INFORMATION_SCHEMA.COLUMNS
a także skonstruować i wykonać odpowiednią ALTER TABLE
oświadczenia.