Ändern Sie die Namen der Tabellenspalten in Postgres in Großbuchstaben

7

Ich benutze Postgres 9.2. Ich muss den Spaltennamen für alle Tabellen in postgres db in UPPER CASE ändern.

Gibt es eine Möglichkeit, das zu tun? Muss ich irgendwelche Konfigurationen in Postgres ändern?

    
jobi88 16.01.2013, 05:08
quelle

1 Antwort

31

Bevor ich erkläre, wie das geht, würde ich stark vorschlagen, das NICHT zu tun.

In PostgreSQL, wenn Tabellen- oder Spaltennamen nicht aufgelistet sind, wie:

%Vor%

Sie werden automatisch zuerst nach Kleinbuchstaben gefaltet, also ist obige Abfrage identisch mit:

%Vor%

Wenn Sie alle Namen in Großbuchstaben konvertieren möchten, funktioniert diese Anweisung NICHT :

%Vor%

Sie müssen jeden einzelnen Namen in dieser Abfrage doppelt angeben, damit er funktioniert:

%Vor%

Wenn Sie andererseits die standardmäßige PostgreSQL-Kleinschreibung verwenden, können Sie eine beliebige Kombination von Groß- und Kleinbuchstaben verwenden, die solange funktioniert, wie Sie keinen Namen angeben.

Wenn Sie immer noch darauf bestehen, in Großbuchstaben zu konvertieren, können Sie dies tun, indem Sie Ihr Datenbankschema mit pg_dump --schema-only .

Nachdem Sie dies getan haben, überprüfen Sie alle CREATE TABLE Anweisungen und konstruieren Sie geeignete ALTER TABLE Anweisungen basierend auf diesem Dump - Sie müssen ein Skript schreiben ( Perl oder Python), um das zu tun.

Alternativ können Sie INFORMATION_SCHEMA.TABLES und / oder INFORMATION_SCHEMA.COLUMNS und auch entsprechende ALTER TABLE -Anweisungen erstellen und ausführen.

    
mvp 16.01.2013 05:51
quelle

Tags und Links