gpt4 book ai didi

cassandra - UPDATE 是否成为隐含的​​ INSERT

转载 作者:行者123 更新时间:2023-12-03 07:49:24 25 4
gpt4 key购买 nike

对于 Cassandra,请执行 UPDATE s 成为隐含 INSERT如果所选行不存在?也就是说,如果我说

 UPDATE users SET name = "Raedwald" WHERE id = 545127

idPRIMARY KEYusers表,并且该表没有键为 545127 的行,这是否相当于
 INSERT INTO users (id, name) VALUES (545127, "Raedwald")

我知道事实正好相反: INSERT对于 id已经存在的变成 UPDATE与该行的 id .由于这个原因,较旧的 Cassandra 文档谈到插入实际上是“upsert”。

我对 CQL3 的案例感兴趣,Cassandra 1.2+ 版。

最佳答案

是的,对于 Cassandra UPDATEINSERT 的同义词,如 the CQL documentation 中所述它说以下关于 UPDATE :

Note that unlike in SQL, UPDATE does not check the prior existence of the row: the row is created if none existed before, and updated otherwise. Furthermore, there is no mean to know which of creation or update happened. In fact, the semantic of INSERT and UPDATE are identical.



对于不同的语义,Cassandra 需要读取以了解该行是否已存在。 Cassandra 是写优化的,所以你总是可以假设它在任何写操作的写之前不进行读操作。唯一的异常(exception)是计数器(除非 replicate_on_write = false ),在这种情况下,增量复制涉及读取。

关于cassandra - UPDATE 是否成为隐含的​​ INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17348558/

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