Cassandra 2.0 为什么insert和select查询的结果集不同
在Cassandra 2.0 为什么insert和select查询的结果集不同,cassandra-2.0,datastax-java-driver,Cassandra 2.0,Datastax Java Driver,在cassandra中使用session.execute时,我注意到同一个表的ResultSet结构不同。如果使用Where查询表以获取记录,则ResultSet包含从表中获取的数据 val resultSet=session.execute(where子句) 给予 ResultSet[已耗尽:false,列[年(bigint),月(bigint), 创建时间小时(bigint),创建时间分钟(bigint), 问题\标识(uuid),问题\描述(varchar)] 但是如果我使用Inser
cassandra
中使用session.execute
时,我注意到同一个表的ResultSet
结构不同。如果使用Where
查询表以获取记录,则ResultSet
包含从表中获取的数据
val resultSet=session.execute(where子句)
给予
ResultSet[已耗尽:false,列[年(bigint),月(bigint),
创建时间小时(bigint),创建时间分钟(bigint),
问题\标识(uuid),问题\描述(varchar)]
但是如果我使用Insert
,我会得到完全不同的东西
ResultSet[已耗尽:false,列[[应用](布尔)]]
这是预期的行为吗?有没有办法在
execute
方法返回的ResultSet
表中获得cassandra
插入的数据?通常,INSERT
不会将插入的值返回给用户。例外情况是触发轻量级事务的插入-如果您使用如果不存在。在这种情况下,它可能返回:
单行带单列[应用]
带真值
这意味着插入了数据李>
包含表中相应行的所有值的单行,加上包含[applicated]
值的列false
-当具有给定主键的行已经存在时,会发生这种情况
通常,INSERT
不会将插入的值返回给用户。例外情况是触发轻量级事务的插入-如果您使用如果不存在。在这种情况下,它可能返回:
单行带单列[应用]
带真值
这意味着插入了数据李>
包含表中相应行的所有值的单行,加上包含[applicated]
值的列false
-当具有给定主键的行已经存在时,会发生这种情况
我对Cassandra没有任何了解,但是Sql插入不会返回任何信息。对于某些DBMS,插入后可以检索一些内容,如插入的行数和生成的PK(如果表中插入了行数,但没有插入实际数据)。我不知道Cassandra的任何信息,但Sql插入不会返回任何信息。对于某些DBMS,插入后可以检索一些内容,如插入的行数和生成的PK(如果表中插入了行数,但没有插入实际数据)。因此,答案是“否”,在执行插入时无法获取返回的插入数据。因此,答案是“否”,在执行插入时无法获取返回的插入数据。
cqlsh:test> insert into test.u2(id,u) values(5, {id:1, t1:3}) if not exists;
[applied]
-----------
True
cqlsh:test> insert into test.u2(id,u) values(1, {id:1, t1:2});
cqlsh:test> insert into test.u2(id,u) values(1, {id:1, t1:3}) if not exists;
[applied] | id | u
-----------+----+----------------
False | 1 | {id: 1, t1: 2}