在 cassandra 中保存并执行 returns 前一行和当前行
Save and Execute returns previous row and current row in cassandra
我正在使用 cassandra 2.1,这里可能是个新手问题。
我用更新的时间戳(日期列)覆盖现有行。
QueryBuilder.insertInto(...)
session.execute(statement);
then do
String sql = "SELECT * FROM "+keyspace+"."+tablename;
ResultSet resultSet = session.execute(sql);
我返回了两行。一个是 insertInto 语句之前的语句,另一个是 insertInto 语句更新的新值。
如何只得到一行? cqlsh
只显示一行。
您可能已经将 table 定义为将日期列用作聚类列。这用于收集时间序列数据,因此插入具有不同时间戳的行会创建一个新行而不是更新现有行。
如果您想更新(覆盖)现有行,您为 PRIMARY KEY 列出的所有字段必须具有相同的值。
此外,如果您正在使用 UPDATE 语句,请注意 UPDATE 和 INSERT 在 Cassandra 中执行相同的操作,因此如果键值与现有行不完全匹配,则使用 UPDATE 就像 INSERT 一样。
我正在使用 cassandra 2.1,这里可能是个新手问题。
我用更新的时间戳(日期列)覆盖现有行。
QueryBuilder.insertInto(...)
session.execute(statement);
then do
String sql = "SELECT * FROM "+keyspace+"."+tablename;
ResultSet resultSet = session.execute(sql);
我返回了两行。一个是 insertInto 语句之前的语句,另一个是 insertInto 语句更新的新值。
如何只得到一行? cqlsh
只显示一行。
您可能已经将 table 定义为将日期列用作聚类列。这用于收集时间序列数据,因此插入具有不同时间戳的行会创建一个新行而不是更新现有行。
如果您想更新(覆盖)现有行,您为 PRIMARY KEY 列出的所有字段必须具有相同的值。
此外,如果您正在使用 UPDATE 语句,请注意 UPDATE 和 INSERT 在 Cassandra 中执行相同的操作,因此如果键值与现有行不完全匹配,则使用 UPDATE 就像 INSERT 一样。