mar*_*cio 3 database postgresql encoding multiple-databases
我尝试在postgres中创建具有不同编码的数据库(我使用PgAdmin作为我的数据库管理器),但是当我尝试使用非UTF8编码创建数据库时,PgAdmin向我显示错误,说我无法创建数据库,因为它与我当前的语言环境"Portuguese_Brazil_1252"不匹配,并且LC_Ctype配置需要编码"WIN1252".
如何在PostGres中配置它?我正在使用Windows XP(不是我选择)的区域设置测试服务器下运行它.是否可以创建具有不同编码的数据库或该行为是PostGres限制?这里有人已经成功管理了吗?
谢谢
来自文档:
为新数据库指定的字符集编码必须与所选的区域设置(LC_COLLATE和LC_CTYPE)兼容.如果语言环境是C(或等效POSIX),则允许所有编码,但对于其他语言环境设置,只有一种编码可以正常工作.[...]
编码和语言环境设置必须与模板数据库的设置匹配,除非将template0用作模板.
您应该可以使用(或两者)创建数据库:
指定template0为模板(而不是默认模板1)
指定正确的LC_COLLATE(尝试使用LC_COLLATE ='C')
指定正确的LC_CTYPE =(也尝试使用LC_CTYPE ='C')
您应该将这些设置添加到CREATE语句中(PgAdmin允许您从主窗体窗口执行此操作)
如果您不了解template0/template1并想知道,请阅读此处