2

我是 Cassandra 的新手,在数据库中插入一些行时遇到标题错误。

我使用 cassandra 1.0.8 和 cqlsh 对我的数据库进行更改。

接下来,我在出现错误之前解释给定的步骤:

创建列族

CREATE TABLE test (
    col1 int PRIMARY KEY,
col2 bigint, 
col3 boolean,
col4 timestamp
);

插入几行而不指定表格的所有列

insert into test (col1, col2, col3) values (1, 100, true);
insert into test (col1, col2, col3) values (2, 200, false);

选择检查是否已正确插入行

select * from test;

结果如下:

select * from test 的结果

插入指定 col4 值的行(之前未指定)

insert into test (col1, col2, col3, col4) values (3, 100, true, '2011-02-03');

选择检查该行是否已正确插入

select * from test;

在这个 SELECT 中是错误的。结果如下:

在此处输入图像描述

分别选择表格的每一列

select col1 from test;
select col2 from test;
select col3 from test;
select col4 from test;

它工作正常并显示正确的值:

在此处输入图像描述

然后,我的问题是:第一个 SELECT 有什么问题?怎么了?

提前致谢!!

笔记:

如果我将 col4 定义为 Integer 而不是时间戳,则它可以工作。但是,我尝试将 col4 插入为标准化格式 yyyy-mm-dd HH:mm (我尝试使用 '2011-02-03 01:05' 和 '2011-02-03 01:05:10' ) 但它不起作用。

4

2 回答 2

1

Cassandra 1.0.8 附带 CQL2,这就是您的问题所在。我设法在 1.0.8 中重新创建了它,但它适用于 1.2.x,所以我的建议是尽可能升级

在 C* 1.2.10 中

cqlsh> update db.user set date='2011-02-03 01:05' where user='JCTYpjJlM';
cqlsh> SELECT  * from db.user ;    

 user      | date                     | password
-----------+--------------------------+----------
 xvkYQKerQ |                     null |      765
 JCTYpjJlM | 2011-02-03 01:05:00+0200 |      391
于 2013-09-26T01:18:57.533 回答
0

@摩尔

奇怪,尝试将 col4 插入为整数(首先转换为毫秒)或使用标准化格式:yyyy-mm-dd HH:mm

根据此处的文档,您可以省略时间并仅输入日期,但似乎在您的情况下会破坏某些内容

于 2013-09-25T19:22:39.357 回答