【发布时间】:2015-02-10 20:06:24
【问题描述】:
表:
CREATE TABLE TEST_PAYLOAD
(
TIME_STAMP timestamp,
TYPE text,
PRIMARY KEY (TIME_STAMP)
);
time_stamp | type
--------------------------+----------
2013-05-15 00:00:00-0700 | sometext
2013-05-16 00:00:00-0700 | sometext
2013-05-17 00:00:00-0700 | sometext
SELECT * FROM TEST_PAYLOAD WHERE TIME_STAMP>='2013-05-15 00:00:00-0700';
code=2200 [Invalid query] message="Only EQ and IN relation are supported on the partition key (unless you use the token() function)"
它不适用于 > 或任何范围选择,但它适用于 = 就索引而言,它只有一个主键,没有分区键。为什么它要求 token()。
我想检索的相对范围只能是日期或带有时间的日期,而数据库中不存在特定的时间戳。
【问题讨论】:
-
顺便说一句,我能够获得部分结果,即数据库中特定的数据不是相对范围,但仍在寻找分区键错误出现的原因。以下查询解决了我的范围问题。 SELECT * FROM TEST_PAYLOAD WHERE TOKEN(TIME_STAMP)>=TOKEN('2013-05-15 00:00:00-0700') AND TOKEN(TIME_STAMP)