postgresql插入时奇怪的中文键值重复问题

我用postgre的数据库,表中的主key如果是全角字符,那么检索和插入的时候就有问题,比放说:
insert into test values( '克鲁斯', '20016', '好人');
第一个字段是key,就会出错误。显示主key值重复了。(而数据库中只有杰克迅)

而如果数据库里面有key为全角字符的数据,select的时候(只要输入同长度的全角字符)就全部都搜索出来了。
seledt * from test where id="周润发";
结果就是克鲁斯,杰克迅都被检索出来。

谁来帮我解决一下啊,急!!!!(补充一下key是char型的)

---------------------------------------------------------------

你数据库用的什么编码,是不是UNICODE,如果建立的是UNICODE编码,注意区域选项要用C,WINDOWS下安装时候(8.0)默认区域就是C,linux 的话要注意下:在你运行initdb之前要先把locale设置成C,可以(在数据库管理员身份下):$export LC_ALL=C $export LANG=C
然后再运行initdb

我当时也碰到过由EUC_CN转用UNICODE编码时,导入数据时主键重复,明明不重复的,select '一'='两';结果为true,后来就按上面方法解决了。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus