我通过 JDBC 10800 连接到 Ignite,并尝试将一行插入到具有三列的表中。
- THE_KEY
- MY_OTHER_ID
- SOME_DATA
如果我尝试插入具有相同 THE_KEY 值的第二条记录,我会收到常规 SQL 错误,告诉我正在尝试插入重复项。到目前为止一切顺利。
但是,当我从空表开始,并执行以下操作时:
INSERT INTO MY_TABLE (THE_KEY, MY_OTHER_ID, SOME_DATA)
SELECT ?, ?, ?
WHERE NOT EXISTS (SELECT 1 from MY_TABLE WHERE MY_OTHER_ID = ?)
我收到一条错误消息:
OperationError: 50000: Failed to INSERT some keys because they are already in cache [keys=[123]]
一些额外的事实:
有任何关于这里可能发生的事情的线索吗?
你没有说哪个版本的Ignite,但我用2.16和2.15尝试过,它在两个版本中都按预期工作。
如果您运行 SQL 命令两次,您会收到与问题中所述相同的错误。
所以我没有在 Ignite 中看到错误,这表明它存在于您的客户端代码或环境中。您可能需要分享有关您的客户或基础设施的更多信息。