我想将数据库编码sql ascii更改为utf8,而无需删除数据库吗? (psql 9.5) (我担心数据中断)
我正在尝试这种方法,但是不起作用
update pg_database set encoding = pg_char_to_encoding('utf8') where datname = 'name'
答案 0 :(得分:1)
您不必一定drop
数据库。但是,您将需要使用新的编码有效地创建另一个编码,因此要更改编码实际上就不会造成数据中断。
通常,首选方法是使用 pg_dump 转储当前数据库,创建具有utf8编码的新数据库,并对该数据库进行 pg_restore 。 / p>
但是,在此过程中,您可能会发现必须解决一些与数据相关的问题,以使pg_restore不会失败,因为在sql_ascii编码的数据库中可以存储很多东西(尽管它的名称是确实没有任何编码-基本上只接收无效的UTF8字节。