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';