2012-04-01 15 views
23

निम्नलिखित MySQL डेटाबेस बयान बनाने PostgreSQL ?:UTF8 Postgresql MySQL की तरह डाटाबेस बनाएं

CREATE DATABASE IF NOT EXISTS `scratch` 
    DEFAULT CHARACTER SET = utf8 
    DEFAULT COLLATE = utf8_unicode_ci; 

में बराबर, क्या होगा मैं वर्तमान में है के लिए (वर्ण सेट, एन्कोडिंग, और lc_type सहित):

CREATE DATABASE "scratch" 
    WITH OWNER "postgres" 
    ENCODING 'UTF8' 
    TABLESPACE "pg_default"; 

क्या यह पर्याप्त है या मुझे LOCALE सहित अधिक विशिष्ट होना चाहिए?

उत्तर

38

हां, आप अधिक विशिष्ट हो सकते हैं।

उदाहरण के लिए:

CREATE DATABASE "scratch" 
    WITH OWNER "postgres" 
    ENCODING 'UTF8' 
    LC_COLLATE = 'en_US.UTF-8' 
    LC_CTYPE = 'en_US.UTF-8'; 

इसके अलावा, मैं PostgreSQL में स्थानों और collations के बारे में अगले पन्नों को पढ़ने के लिए सलाह देते हैं:

+0

धन्यवाद माइकल। यह एक पुष्टिकरण था क्योंकि मैं इसके साथ आया था; हालांकि, मैं इस _anywhere_ जैसे उदाहरण कभी नहीं देखता लेकिन मैं हमेशा 100% स्पष्ट होना पसंद करता हूं। इस सवाल पूछने से पहले मुझे दस्तावेज़ों पर एक झांक था; हालांकि, जब भी मैं आपको सिंटैक्स के साथ आया था, तब भी मुझे विश्वास नहीं था कि मुझे कुछ याद नहीं आया था। मेरे लिए यह तथ्य इस बात की ओर इशारा करता है कि उदाहरण प्रदान करने पर दस्तावेज़ थोड़ा बेहतर हो सकते हैं। –

+1

यह मेरे लिए काम करता था लेकिन मुझे इसे काम करने के लिए निम्नलिखित बाधा जोड़ने की आवश्यकता थी: 'टेम्पलेट = टेम्पलेट 0' – Lucas

+2

पीजी की कॉलिंग बेहद उलझन में हैं। Mysql पर, utf8mb4_unicode_ci मानक है - एक भाषा में सभी भाषाएं। यह आरएफसी या आईएसओ परिभाषित व्यवहार नहीं है, लेकिन यह काम करता है! यूनिकोड/utf8 का पूरा बिंदु सभी भाषाओं का समर्थन करना है * निर्बाध *। Utf8 निर्दिष्ट करने के लिए, और फिर एक एकल संयोजन के अनुसार क्रमबद्ध करने के लिए मजबूर होना चाहिए जैसे en_US न केवल भ्रमित है, बल्कि बेकार है। किसी भी प्रकार के परिभाषित आदेश में एक ही पृष्ठ पर अंग्रेजी, चीनी, जापानी एट अल दिखाने की आवश्यकता है! मैं सिर्फ यह नहीं मान सकता कि प्रत्येक ग्राहक एक प्राथमिक भाषा के साथ काम कर रहा है। बहु भाषा का समर्थन करने के लिए बिल्ली कैसे? –

संबंधित मुद्दे