PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

आप पोस्टग्रेज डेटाबेस के कैरेक्टर एन्कोडिंग को कैसे बदलते हैं?

सबसे पहले, डेनियल का उत्तर सही, सुरक्षित विकल्प है।

SQL_ASCII से किसी अन्य चीज़ में बदलने के विशिष्ट मामले के लिए, आप धोखा दे सकते हैं और डेटाबेस एन्कोडिंग को पुन:असाइन करने के लिए बस pg_database कैटलॉग को पोक कर सकते हैं। यह मानता है कि आपने पहले से ही अपेक्षित एन्कोडिंग में कोई भी गैर-ASCII वर्ण संग्रहीत कर लिया है (या कि आपने किसी गैर-ASCII वर्णों का उपयोग नहीं किया है)।

तब आप यह कर सकते हैं:

update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'thedb'

यह डेटाबेस के संयोजन को नहीं बदलेगा, बस एन्कोडेड बाइट्स को वर्णों में कैसे परिवर्तित किया जाता है (इसलिए अब length('£123') 5 के बजाय 4 लौटाएगा)। यदि डेटाबेस 'सी' संयोजन का उपयोग करता है, तो ASCII स्ट्रिंग्स के क्रम में कोई परिवर्तन नहीं होना चाहिए। हालांकि आपको गैर-ASCII वर्णों वाले किसी भी सूचकांक को फिर से बनाने की आवश्यकता होगी।

चेतावनी एम्प्टर। डंपिंग और रीलोडिंग आपके डेटाबेस सामग्री की जांच करने का एक तरीका प्रदान करता है वास्तव में आपके द्वारा अपेक्षित एन्कोडिंग में है, और ऐसा नहीं है। और अगर यह पता चलता है कि आपके पास डेटाबेस में कुछ गलत तरीके से एन्कोडेड डेटा है, तो बचाव करना मुश्किल होने वाला है। इसलिए यदि आप कर सकते हैं, डंप करें और पुन:प्रारंभ करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - बाधाओं को अक्षम करना

  2. क्लाइंट-साइड एप्लिकेशन बनाने के लिए सर्वर-साइड एक्सटेंशन या libpq-dev बनाने के लिए आपको postgresql-server-dev-X.Y इंस्टॉल करना होगा

  3. PostgreSQL कनेक्शन पूलिंग:भाग 1 - पेशेवरों और विपक्ष

  4. PostgreSQL में एक महीने में दिनों की संख्या प्राप्त करें

  5. Redshift/Postgres में, किसी शर्त को पूरा करने वाली पंक्तियों की गणना कैसे करें?