sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL 9.1 installation och databaskodning

Det relevanta alternativet är --locale=locale till initdb kommando som initierar ditt databaskluster. Om du inte anger det uttryckligen, används det som standard till systemets språk. (Du kör förmodligen din Ubuntu på lokalen 'C'.)

Läs mer om det i den utmärkta manualen här .

I PostgreSQL kan smyg fortfarande in en databas med annan lokalitet genom att basera en ny databas på template0 istället för standard templeate1 . Jag citerar manualen här :

Men jag skulle hellre återskapa databasklustret med önskad plats. Mycket renare.

Redigera:information om tillgängliga språk

Du kan bara använda platser som tillhandahålls av operativsystemet. Jag citerar manualen här :

Titta på locale-gen i ett Unix-system, om du vill använda en lokalitet som ännu inte har genererats. Det viktiga att förstå är att flera lokaler kan installeras i ditt operativsystem, men endast en av dem kan väljas för systemparametrar som LC_CTYPE , LC_COLLATE , etc. Titta på utdata från locale kontra locale -a i skalet. Vanligtvis är det samma för alla, ställ in via LC_ALL .

@David:Det du gjorde kan ha löst ditt problem, men du kunde ha haft det lättare. Tänk också på att miljövariabeln LANG tillhandahåller endast standard för alla språkinställningar. Om någon av dem är inställd på något annat, LANG kommer att åsidosättas. Ställ in LC_ALL för att åsidosätta alla befintliga inställningar. Här är en av många webbplatser på webben som berättar mer om det.

För att kontrollera alla aktuella språkinställningar för din databas (kluster), kör i din databas:

SHOW ALL;

Eller mer specifikt:

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


  1. XAException i Websphere Application Server

  2. underfrågan i FROM måste ha ett alias

  3. Använder Python för att komma åt SQL med ett variabelt kolumnnamn

  4. Hur man delar upp array i rader i Postgresql