PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana Anda mengubah pengkodean karakter dari database postgres?

Pertama, jawaban Daniel adalah pilihan yang benar dan aman.

Untuk kasus khusus perubahan dari SQL_ASCII ke sesuatu yang lain, Anda dapat menipu dan cukup menyodok katalog pg_database untuk menetapkan kembali pengkodean database. Ini mengasumsikan Anda telah menyimpan karakter non-ASCII apa pun dalam pengkodean yang diharapkan (atau bahwa Anda belum pernah menggunakan karakter non-ASCII).

Kemudian Anda dapat melakukan:

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

Ini tidak akan mengubah susunan database, hanya bagaimana byte yang dikodekan diubah menjadi karakter (jadi sekarang length('£123') akan mengembalikan 4 bukannya 5). Jika database menggunakan susunan 'C', seharusnya tidak ada perubahan untuk memesan string ASCII. Anda mungkin perlu membangun kembali indeks yang berisi karakter non-ASCII.

Pembatas peringatan. Membuang dan memuat ulang menyediakan cara untuk memeriksa konten database Anda sebenarnya dalam penyandian yang Anda harapkan, dan ini tidak. Dan jika ternyata Anda memiliki beberapa data yang salah dikodekan dalam database, penyelamatan akan menjadi sulit. Jadi, jika Anda bisa, buang dan inisialisasi ulang.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Berhenti (lama) menjalankan kueri SQL di PostgreSQL saat sesi atau permintaan tidak ada lagi?

  2. Bagaimana Cosh() Bekerja di PostgreSQL

  3. Menggunakan Barman untuk Mencadangkan PostgreSQL - Gambaran Umum

  4. Menyebarkan Django ke Heroku (Kesalahan Psycopg2)

  5. Perbedaan antara teks dan varchar (karakter bervariasi)