Bevor ich erkläre, wie das zu tun ist, würde ich stark vorschlagen, das NICHT zu tun.
In PostgreSQL, wenn Tabellen- oder Spaltennamen unquoted sind, wie:
SELECT Name FROM MyTable WHERE ID = 10
Sie tatsächlich automatisch Fall zuerst zu senken gefaltet, so obige Abfrage ist identisch mit:
SELECT name FROM mytable WHERE id = 10
Wenn Sie sollten alle Namen in Großbuchstaben umwandeln, diese Anweisung funktioniert NICHT:
SELECT NAME FROM MYTABLE WHERE ID = 10
Sie müssen doppelte Anführungszeichen jeder einzelne Name in dieser Abfrage, damit es funktioniert:
SELECT "NAME" FROM "MYTABLE" WHERE "ID" = 10
Wenn auf Sie dagegen Standard PostgreSQL Klein verwenden nur Vereinbarung, kann man jeden Case verwenden können Kombination und es wird funktionieren, solange Sie keinen Namen angeben. Jetzt
, wenn Sie noch in Großbuchstaben umwandeln bestehen, können Sie tun, dass pg_dump --schema-only
durch Dumping Ihre Datenbank-Schema in eine Datei.
Nachdem Sie das getan haben, überprüfen Sie alle CREATE TABLE
Anweisungen und konstruieren Sie geeignete ALTER TABLE
Aussagen basierend auf diesem Dump - Sie müssen ein Skript (Perl oder Python) dazu schreiben, um dies zu tun.
Alternativ können Sie INFORMATION_SCHEMA.TABLES und/oder INFORMATION_SCHEMA.COLUMNS lesen und auch entsprechende ALTER TABLE
Anweisungen erstellen und ausführen.
Anscheinend doppelte Spalten zitieren Namen in 'CREATE TABLE' erstellt Spaltennamen mit den Anführungszeichen, aber es * noch * Kleinbuchstaben alles. – weberc2
@ weberc2: Das ist einfach falsch. SQLFiddle-Proof: http://sqlfiddle.com/#!17/de97a/1 – mvp
Ja, sieht aus wie mein Texteditor, Smart-Anführungszeichen eingefügt. Mein Fehler. – weberc2