如何使用sql或phpPgAdmin更改PostgreSQL数据库的数据库编码
简言之,仅使用phpPgAdmin或SQL无法做到这一点,而不存在现有数据损坏的风险。
您必须导出所有数据,使用正确的编码创建数据库,并恢复导出的数据
这是您应该如何进行的:
-
创建数据库转储:
pg_转储您的_数据库>;您的_database.sql这将以sql格式保存数据库,并使用当前的编码方式
-
删除数据库(或重命名):
DROP DATABASE您的_数据库如果您有足够的存储空间,我建议保留旧数据库,直到您确定新数据库一切正常,重命名它:
alterdatabase将您的\u数据库重命名为您的\u数据库\u备份 -
使用新编码创建数据库:
使用编码为“UNICODE”的模板=template0创建数据库\u数据库 -
从以前创建的转储导入数据:
PGCLIENTENCODING=YOUR_OLD_ENCODING psql-f YOUR_database.sql YOUR_database您需要将psql客户机编码设置为旧数据库中的编码
动态更改编码是不可能的,因为它需要重写大多数内部数据库数据,这几乎等同于按照我描述的方式重新创建数据库
可以只更改有关数据库的内部postgres信息,更改后的任何新数据都将正确保存,但是现有数据可能会损坏