PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Installation von PostgreSQL 9.1 und Datenbankkodierung

Die relevante Option ist --locale=locale zur initdb Befehl, der Ihren Datenbank-Cluster initialisiert. Wenn Sie es nicht explizit angeben, wird standardmäßig das Gebietsschema des Systems verwendet. (Sie führen Ihr Ubuntu wahrscheinlich auf Gebietsschema „C“ aus.)

Lesen Sie mehr darüber im ausgezeichneten Handbuch hier .

In PostgreSQL können Sie schleichen Sie sich immer noch in eine Datenbank mit einem anderen Gebietsschema ein, indem Sie eine neue Datenbank auf Basis von template0 erstellen anstelle des standardmäßigen templeate1 . Ich zitiere das Handbuch hier :

Aber ich würde lieber den Datenbankcluster mit dem gewünschten Gebietsschema neu erstellen. Viel sauberer.

Bearbeiten:Info über verfügbare Gebietsschemas

Sie können nur verwenden Gebietsschemas, die vom Betriebssystem bereitgestellt werden. Ich zitiere das Handbuch hier :

Sehen Sie sich locale-gen an in einem Unix-System, wenn Sie eine noch nicht generierte Locale verwenden möchten. Es ist wichtig zu verstehen, dass mehrere Gebietsschemas in Ihrem Betriebssystem installiert werden können, aber nur eines davon für Systemparameter wie LC_CTYPE ausgewählt werden kann , LC_COLLATE usw. Sehen Sie sich die Ausgabe von locale an gegenüber locale -a in der Schale. Normalerweise ist es für alle gleich, eingestellt über LC_ALL .

@David:Was du getan hast, hat vielleicht dein Problem gelöst, aber das hättest du einfacher haben können. Beachten Sie auch, dass die Umgebungsvariable LANG stellt nur den Standardwert bereit für alle Gebietsschemaeinstellungen. Wenn einer von ihnen auf etwas anderes eingestellt ist, LANG wird überschrieben. Setzen Sie LC_ALL vorhandene Einstellungen zu überschreiben. Hier ist eine vieler Websites im Web, das Ihnen mehr darüber erzählt.

Um alle aktuellen Locale-Einstellungen Ihrer Datenbank (Cluster) zu überprüfen, führen Sie in Ihrer Datenbank aus:

SHOW ALL;

Oder genauer gesagt:

SELECT *
FROM   pg_settings
WHERE  name ~~ 'lc%';