利用客户端工具来操作postgresql是非常轻松的事情。
1.修改pg_hba.conf。 copyright © lizongbo
# IPv4 local connections:
host all all 127.0.0.1/32 trust
实现本机连接永远信任而且不检查密码。
参考: http://www.pgsqldb.org/pgsqldoc-cvs/client-authentication.html#EXAMPLE-PG-HBA.CONF
2.数据库编码问题,创建表的时候,强烈建议选择encoding为UNICODE,但是单字查询好像有bug
比如 select * from tbl_test where username='北方区' 本应该有记录的却返回不了,
而使用 select * from tbl_test where username like '北方区' 就能够得到结果。
而且在order by的时候也有问题.
具体现象参考:http://bbs.chinaunix.net/forum/viewtopic.php?t=472774&show_type=&postdays=0&postorder=asc&start=0
经过查找资料,原来是在安装的时候,locale必须选择“c”,而不能够选择其它的。
参考:http://www.pgsql.com.tw/modules.php?op=modload&name=Forum&file=viewtopic&topic=546&forum=1
重新安装了一遍,证实locale选择“c”,就不存在查询的问题了,(但是好像order by有问题)
3.通过jdbc连接的时候。在url中指定编码。
例如:
jdbc:postgresql://localhost/mydbtest?user=postgresql&password=&charSet=GBK
(url里支持的参数参考:http://jdbc.postgresql.org/documentation/80/connect.html#connection-parameters)
如果应用程序和数据库在同一台机器上,可以把url简写。
4.配置数据库连接池的时候,使用:
下面这个sql语句来保持连接:
<parameter>
<name>validationQuery</name>
<value>select version();</value>
</parameter>
(参考:http://jdbc.postgresql.org/documentation/80/tomcat.html)
5.分页查询:
select * from tbl_test order by username limit 2 offset 0 ;
表示从第一条记录开始返回,共返回两条记录。
select * from tbl_test order by username limit 3 offset 2 ;
表示从第三条记录开始返回,共返回三条记录。
如果参数填入了负数是什么效果呢?
select * from tbl_test order by username limit -3 offset -1 ;
offset后面的负数会被处理成0,而limit后面为负数的话,返回结果为无记录(这个优先级最高)。
6.卸载与重新安装。
在控制面板里卸载并不能够删除系统服务和删除data目录,而如果不删除服务的话,如果重新安装时又选择了安装成系统服务,那么安装就会失败。因此需要手工删除注册表里的项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-8.0,然后重新启动电脑后,在重新安装pgsql8.0,
先备份data目录的数据,然后把这个文件夹删除掉。