我正在編寫一個應用程序,我需要能夠判斷插入和更新是否成功。我正在使用「INSERT ... IF NOT EXISTS」來獲取輕量級事務行爲,並注意到從execute返回的結果集包含一個包含更新數據的行和一個可以查詢的「[applied]」列。太棒了。但我有一個更新語句返回一個空的ResultSet。看起來好像更新成功了,但我想要一個編程方式來驗證。Cassandra Java驅動程序:如何報告插入,更新和刪除結果?
澄清:
我打開了我的突變返回的結果集的一些記錄。我發現「INSERT ... IF NOT EXIST」返回一個帶有名爲「[applied]」的布爾列的ResultSet。如果「[applied]」爲false,它也會返回已經退出的行。
隨着更新,我總是看到一個空的ResultSet。
所以我有兩個問題:
- 哪裏是什麼ResultSet中應包含每個突變類型的文檔?我沒有在CQL文檔或Java驅動程序文檔中看到它。我甚至試着查看其他語言集成的文檔,但沒有發現任何有關ResultSet內容突變的描述。
- 有什麼方法可以找出有多少行由UPDATE修改或由DELETE刪除?
是的,這不是真正的黑客,因爲它是Cassandra似乎要傳達突變結果的唯一方法。我正在做同樣的事情。我通過記錄結果集的內容來發現這一點,我期望這些結果集是空的。我希望文檔在這個行爲上更清楚。 – AlphaGeek
即使你!?哇,這是一個嚴重的問題! – Maxim
Cassandra文檔:INSERT將一個或多個列以原子方式孤立地寫入Cassandra表中的記錄。沒有結果返回。 – Maxim