PostgreSQL दस्तावेज़ीकरण से:
<ब्लॉकक्वॉट>टेम्प्लेट 1 के बजाय टेम्प्लेट 0 की प्रतिलिपि बनाने का एक अन्य सामान्य कारण यह है कि टेम्प्लेट 0 की प्रतिलिपि बनाते समय नई एन्कोडिंग और लोकेल सेटिंग्स को निर्दिष्ट किया जा सकता है, जबकि टेम्प्लेट 1 की एक प्रति को उसी सेटिंग्स का उपयोग करना चाहिए जो वह करता है। ऐसा इसलिए है क्योंकि टेम्प्लेट 1 में एन्कोडिंग-विशिष्ट या स्थानीय-विशिष्ट डेटा हो सकता है, जबकि टेम्प्लेट 0 के बारे में नहीं पता है।
आप केवल template0
. का उपयोग कर सकते हैं विभिन्न एन्कोडिंग और लोकेल के साथ नया डेटाबेस बनाने के लिए:
CREATE DATABASE newdb
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'zh_CN.UTF-8'
CONNECTION LIMIT = -1
TEMPLATE template0;
यह काम करेगा, हालांकि इसका मतलब है कि आपने template1
. में जो भी बदलाव किए हैं नव निर्मित डेटाबेस पर लागू नहीं किया जाएगा।
template1
. के एन्कोडिंग और संयोजन को बदलने के लिए आपको सबसे पहले template1
delete को हटाना होगा और फिर नया टेम्पलेट बनाएं template1
template0
. से . टेम्प्लेट डेटाबेस को कैसे छोड़ें यहाँ वर्णित है। फिर आप नया डेटाबेस बना सकते हैं template1
चुने हुए एन्कोडिंग/संयोजन के साथ और datistemplate=true
. सेट करके इसे टेम्पलेट के रूप में चिह्नित करें (उदाहरण):
update pg_database set datistemplate=true where datname='template1';