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

Postgresql और यूनिकोड तालिका नाम:जब यूनिकोड वर्ण होते हैं तो मैं सूचना स्कीमा से तालिका नाम का चयन क्यों नहीं कर सकता?

यह एक बग की तरह दिखता है, शायद regclass . में या इससे संबंधित कुछ:

# create table pinkƒpink1 (id serial);
NOTICE:  CREATE TABLE will create implicit sequence "pink?pink1_id_seq" for serial column "pink?pink1.id"
CREATE TABLE
# select 'pinkƒpink1'::name;
    name    
------------
 pinkƒpink1
(1 row)

# select 'pinkƒpink1'::regclass;
  regclass   
-------------
 "pinkpink1"
(1 row)

# select relname from pg_class where oid = 'pinkƒpink1'::regclass;
  relname  
-----------
 pinkpink1

# select relname from pg_class where relname = 'pinkƒpink1'::name;
 relname 
---------
(0 rows)

# select relname from pg_class where relname = 'pinkpink1';
 relname 
---------
(0 rows)

(मेरा सिस्टम OSX Lion है जिसमें सब कुछ utf8 है, अगर यह मायने रखता है।)

समाधान के लिए, आप इसे ::regclass . पर डाल सकते हैं जैसा कि ऊपर किया गया है (वह जिसे तालिका मिली)। ध्यान दें कि ::regclass पर कास्ट किया जा रहा है यदि तालिका मौजूद नहीं है, तो एक त्रुटि उत्पन्न होगी, इसलिए उसके अनुसार कोड करें।

क्रेग के अनुरोध के अनुसार:

# SELECT current_setting('server_encoding') AS server_encoding, current_setting('client_encoding') AS client_encoding, version();
 server_encoding | client_encoding |                                                              version                                                              
-----------------+-----------------+-----------------------------------------------------------------------------------------------------------------------------------
 UTF8            | UTF8            | PostgreSQL 9.2.4 on x86_64-apple-darwin11.4.2, compiled by Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn), 64-bit
(1 row)

और इरविन के अनुसार:

# SELECT name, setting FROM pg_settings WHERE  name IN ('lc_collate','lc_ctype','client_encoding','server_encoding');
      name       |   setting   
-----------------+-------------
 client_encoding | UTF8
 lc_collate      | en_US.UTF-8
 lc_ctype        | en_US.UTF-8
 server_encoding | UTF8
(4 rows)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. टेक्स्ट के लिए टेबल इंडेक्स [] सरणी कॉलम

  2. एक सरणी के साथ एक तैयार बयान की आपूर्ति करें

  3. मैं Postgresql के लिए AWS RDS में डेटाबेस का नाम कैसे बदल सकता हूँ?

  4. PostgreSQL में 'ऑर्डर' पर या उसके पास सिंटैक्स त्रुटि

  5. पोस्टग्रेज उपयोगकर्ता बनाने की अनुमति नहीं