gpt4 book ai didi

java - Cassandra Java Driver : How are insert,更新、删除结果报错?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:56:28 24 4
gpt4 key购买 nike

我正在编写一个应用程序,我需要能够判断插入和更新是否成功。我正在使用“INSERT ... IF NOT EXISTS”来获取轻量级事务行为,并注意到从执行返回的结果集包含一个包含更新数据的行和一个可以查询的“[applied]”列。太棒了。但是我有一个返回空结果集的更新语句。看起来好像更新成功了,但我想要一种程序化的方式来验证这一点。

澄清:

我已经打开了我的突变返回的结果集的一些日志记录。我发现“INSERT...IF NOT EXIST”返回一个 ResultSet,其中包含一个名为“[applied]”的 boolean 列。如果“[applied]”为假,它还会返回已经存在的行。

使用 UPDATE,我总是看到一个空的结果集。

所以我有两个问题:

  1. 关于每种突变类型的结果集应包含哪些内容的文档在哪里?我没有在 CQL 文档或 Java 驱动程序文档中看到它。我什至尝试查看其他语言集成的文档,但没有找到任何关于突变结果集内容的描述。
  2. 有没有办法找出有多少行被 UPDATE 修改或被 DELETE 删除?

最佳答案

甚至我也遇到了同样的问题。我发现的一件事(尽管是一个糟糕的技巧)是,如果更新或插入失败,结果集中的列定义不止一个,如果突变成功,则列定义仅包含一个列,即 "applied"。问题是 ResultSet 不包含“applied”列的值,如果突变成功则为“true”,如果事务阻止更改数据则为“false”。到目前为止,我正在我的应用程序中使用这个 hack,但我认为它不是一个好的解决方案,所以即使我在寻找更好的解决方案。

关于java - Cassandra Java Driver : How are insert,更新、删除结果报错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21147871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com