PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Postgresql và tên bảng unicode:Tại sao tôi không thể chọn tên bảng từ giản đồ thông tin khi nó chứa các ký tự unicode?

Nó trông giống như một lỗi, có lẽ trong regclass hoặc cái gì đó liên quan đến nó:

# 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)

(Hệ thống của tôi là OSX Lion với mọi thứ utf8, trong trường hợp nó quan trọng.)

Đối với giải pháp thay thế, bạn có thể truyền nó tới ::regclass như được thực hiện ở trên (một trong những tìm thấy bảng). Lưu ý rằng truyền tới ::regclass Tuy nhiên, sẽ mang lại lỗi nếu bảng không tồn tại, vì vậy hãy mã xung quanh bảng đó cho phù hợp.

Theo yêu cầu của Craig:

# 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)

Và theo Erwin's:

# 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. Nhận số lượng bản ghi bị ảnh hưởng bởi INSERT hoặc UPDATE trong PostgreSQL

  2. Tổng quan về các nút kế hoạch phụ trợ khác nhau trong PostgreSQL

  3. Django duy nhất cùng nhau ràng buộc thất bại?

  4. PostgreSQL - phát hiện đệ quy vô hạn trong chính sách cho mối quan hệ

  5. Intalling pq gem PostgreSQL cho Heroku