IT人
相关图书

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

编辑: 文章来源: 发布日期:2007-2-6 人气:

我用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,后来就按上面方法解决了。

相关文章
    网友对“postgresql插入时奇怪的中文键值重复问题”的评论
    已有位网友对本文发表评论,下面显示最近10条评论。 查看所有评论
    昵称:
    评论内容:
    Copyright ◎ 1998 - 2007 编程资料网 All Rights Reserved