gpt4 book ai didi

所有字段均为 PK 的 Cassandra 表

转载 作者:行者123 更新时间:2023-12-02 10:22:13 24 4
gpt4 key购买 nike

我对 Cassandra 还很陌生,除了已经存在的表(例如 PK 为 item_id 的项目)之外,我还尝试创建一些辅助表,以便能够通过不同字段进行查询。

例如:

CREATE TABLE IF NOT EXISTS items_ids_by_field1_and_field2(
item_id TEXT,
field1 TEXT,
field2 TEXT,

PRIMARY KEY ((field1, field2), item_id));

INSERT 工作正常,但是当我想在此表上执行 UPDATE 时,问题就出现了,因为所有字段都是 PK 的一部分。

这个问题有什么解决方案吗?谢谢。

最佳答案

您无法UPDATE所有列都是主键的行的原因是 Cassandra 不允许您更改主键的值,因为您实际上会引用不同的主键完全将行作为主键是唯一标识行的方式。

如果您希望所有列都成为主键的一部分,并且想要更改其中一列,则可以先删除现有行,然后插入新数据。由于您需要所有列进行任何更改(因为它们都创建主键),因此使用 INSERT 而不是 UPDATE 就可以了:

DELETE FROM items_ids_by_field1_and_field2 where field1='X' and field2='Y' and item_id='Z'
INSERT INTO items_ids_by_field1-and_field2 (field1, field2, item_id) values ('X', 'Y', 'A')

会完成你需要做的事情。如果 'X'、'Y'、'Z' 不存在,这对于 Cassandra 来说不是问题。

关于所有字段均为 PK 的 Cassandra 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570346/

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