PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как променяте кодирането на знаци на база данни на Postgres?

Първо, отговорът на Даниел е правилният и безопасен вариант.

За конкретния случай на промяна от SQL_ASCII към нещо друго, можете да измамите и просто да бутнете в каталога pg_database, за да преназначите кодирането на базата данни. Това предполага, че вече сте съхранили всички не-ASCII знаци в очакваното кодиране (или че просто не сте използвали знаци, различни от ASCII).

След това можете да направите:

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

Това няма да промени съпоставянето на базата данни, а просто как кодираните байтове се преобразуват в знаци (така че сега length('£123') ще върне 4 вместо 5). Ако базата данни използва съпоставяне „C“, не трябва да има промяна в подреждането на 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. Postgres аналог на CROSS APPLY в SQL Server

  2. Как да инсталирате PostgreSQL 12 на Fedora 33

  3. Rails 4 LIKE заявка - ActiveRecord добавя кавички

  4. Как да вмъкнете данни в таблица с помощта на съхранени процедури в postgresql

  5. Грешка в SQLAlchemy без предоставена парола