sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man ändrar malldatabassamlingens kodning

Från PostgreSQL-dokumentation:

En annan vanlig anledning till att kopiera mall0 istället för mall1 är att nya kodnings- och språkinställningar kan anges när man kopierar mall0, medan en kopia av mall1 måste använda samma inställningar som den gör. Detta beror på att mall1 kan innehålla kodningsspecifik eller lokalspecifik data, medan mall0 är känt att inte göra det.

Du kan bara använda template0 för att skapa en ny databas med annan kodning och språk:

CREATE DATABASE newdb
WITH OWNER = postgres
   ENCODING = 'UTF8'
   TABLESPACE = pg_default
   LC_COLLATE = 'zh_CN.UTF-8'
   CONNECTION LIMIT = -1
   TEMPLATE template0;

Detta kommer att fungera, men det betyder att alla ändringar du gjort i template1 kommer inte att tillämpas på nyskapad databas.

För att ändra kodning och sortering av template1 du måste först ta bort template1 och skapa sedan en ny mall template1 från template0 . Hur man släpper malldatabas beskrivs här. Sedan kan du skapa en ny databas template1 med vald kodning/sortering och markera den som en mall genom att ställa in datistemplate=true (exempel):

update pg_database set datistemplate=true  where datname='template1';


  1. [Video] Introduktion till JSON-datatyper i PostgreSQL

  2. 19 Onlineresurser för att lära dig om databasdesignfel

  3. Hur make_interval() fungerar i PostgreSQL

  4. Hur undkommer jag ett enstaka citat i SQL Server?