gpt4 book ai didi

java - 如何使用java客户端通过tarantool的辅助键删除记录?

转载 作者:行者123 更新时间:2023-12-01 09:30:03 26 4
gpt4 key购买 nike

Java 客户端源代码

函数选择有索引:

public java.util.List select(int space, int index, java.lang.Object key, int offset, int limit, int iterator)

但仅在给定空格和键的情况下替换、更新和删除:

public java.util.List delete(int space, java.lang.Object key)

最佳答案

删除是在主键上执行的,因此这是一个原子操作,因为主键强制唯一性。二级索引可能是唯一的,但也可能不是唯一的,因此您需要启动一个事务来确保非唯一二级索引键的原子性。这就是为什么 Java 的二级索引上还没有删除/更新/插入的原因。 tarantool 是否允许远程启动事务是一个很好的问题,但我怀疑它是否有用。

因此,您需要执行以下操作才能使其正常工作:

  1. 在 Lua 中编写一个存储过程来迭代您的索引/选择您需要的值
  2. 将您编写的过程放入 Tarantool 实例中
  3. 通过使用 public List call(String var1, Object... var2); 从 Java 代码中按名称调用它;

例如

    -- Lua function
function deleteFromSpaceByUniqueSecondaryIndex(secondaryId)
box.space.YourSpace.index.yourSecondaryIdx:delete(secondaryId)
end

......

    //call it from Java like that
tarantoolConn.call("deleteFromSpaceByUniqueSecondaryIndex", secondaryId);

关于java - 如何使用java客户端通过tarantool的辅助键删除记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39508933/

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