我对PostgreSQL有一个独特的问题。在将数据插入数据库后,我尝试检索大于特定字符串的所有内容。但是,它不会返回任何数据。所以,我在另一台机器上尝试了这个并且它有效。所以我的问题是我的数据是在一台机器上返回的,而不是另一台机器上。我测试过:
运行PostgreSQL 9.2的Windows 7专业版桌面(WORKED)
Windows 8.1专业版笔记本电脑运行PostgreSQL 9.3(WORKED)
Fedora 20运行笔记本电脑PostgreSQL 9.3(工作)
Fedora 20运行桌面PostgreSQL 9.3(FAILED)
以下是我的测试用例,该测试用例分布在所有系统中:
create table test(key0 character(38) not null, constraint pkey primary key (key0)) with (oids=false);
insert into test (key0) values ('00 00 00 00 0000');
以下查询在机器上返回不同的结果:
select * from test where key0 >= '00 00 00 00 00 00' order by key0;
我完全不知道为什么这些查询在一台机器上不起作用。
任何帮助都将不胜感激。
答案 0 :(得分:0)
这很可能与整理有关。见:
select * from test where key0 >= '00 00 00 00 00 00' order by key0;
key0
------
(0 rows)
select * from test where key0 >= '00 00 00 00 00 00' COLLATE "C" order by key0;
key0
----------------------------------------
00 00 00 00 0000
(1 row)
我猜你没有为CREATE DATABASE语句提供LC_COLLATE参数,并且它复制了系统默认值,这在系统中恰好是不同的。