Postgres将编码SQL_ASCII更改为UTF8

时间:2019-07-27 08:17:37

标签: postgresql postgresql-9.5

我想将数据库编码sql ascii更改为utf8,而无需删除数据库吗? (psql 9.5) (我担心数据中断)

我正在尝试这种方法,但是不起作用

 update pg_database set encoding = pg_char_to_encoding('utf8') where datname = 'name'

postgre

1 个答案:

答案 0 :(得分:1)

您不必一定drop数据库。但是,您将需要使用新的编码有效地创建另一个编码,因此要更改编码实际上就不会造成数据中断。

通常,首选方法是使用 pg_dump 转储当前数据库,创建具有utf8编码的新数据库,并对该数据库进行 pg_restore 。 / p>

但是,在此过程中,您可能会发现必须解决一些与数据相关的问题,以使pg_restore不会失败,因为在sql_ascii编码的数据库中可以存储很多东西(尽管它的名称是确实没有任何编码-基本上只接收无效的UTF8字节。