cassandra-2.0 - 为什么插入和选择查询的结果集不同
问题描述
当我使用session.execute
in 时cassandra
,我注意到ResultSet
同一张表的结构不同。如果我使用 查询表以获取记录Where
,则ResultSet
包含从表中获取的数据。
val resultSet = session.execute(whereClause)
给
ResultSet[ exhausted: false, Columns[year(bigint), month(bigint),
creation_time_hour(bigint), creation_time_minute(bigint),
question_id(uuid), question_description(varchar)]]
但如果我使用Insert
,我会得到完全不同的东西。
ResultSet[ exhausted: false, Columns[[applied](boolean)]]
这是预期的行为吗?有没有办法在方法返回cassandra
的表中“插入”数据?ResultSet
execute
解决方案
通常,INSERT
不会将插入的值返回给用户。例外是触发轻量级事务的插入 - 如果您使用IF NOT EXISTS
. 在这种情况下,它可能会返回:
- 单行,单列
[applied]
,true
值 - 这意味着数据已插入;
cqlsh:test> insert into test.u2(id,u) values(5, {id:1, t1:3}) if not exists;
[applied]
-----------
True
- 具有表对应行的所有值的单行,加上
[applied]
具有false
值的列 - 当具有给定主键的行已经存在时会发生这种情况。
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}
推荐阅读
- java - 如何使用 graphql-spring-boot 向 GraphQL Java 添加检测?
- java - 如何从导航抽屉的片段移动到 Android Studio 上的活动?
- sparql - 使用 Wikidata SPARQL 查找特定单词的同义词
- java - 我阅读了 XML 文档 (JDOM),但在另一台 PC 上运行时出现异常 java.lang.NoClassDefFoundError
- powershell - 如何使用 powershell 中的 foreach 循环将搜索结果存储到表中?
- php - 在 Laravel 的 img 源中显示 google favicon 和 entity
- javascript - Google Api Calendar 清除所有事件
- java - 将 documentReference.getId() 保存在一个变量中以在不同的语句中使用它
- python - 在字典列表中按键分配值时遇到问题
- jquery - 父子悬停