【发布时间】:2016-09-19 23:03:40
【问题描述】:
这是我的表结构如下
CREATE TABLE manage_files_log (
account_sid uuid,
file_type text,
file_sid timeuuid,
date_created timestamp,
file_description text,
file_name text,
status int,
url text,
PRIMARY KEY ((account_sid, file_type), file_sid)
) WITH CLUSTERING ORDER BY (file_sid DESC)
在这个表中我想用查询更新我的记录
UPDATE manage_files_log SET url='$url' WHERE account_sid =e40daea7-b1ec-088a-fc23-26f67f2052b9 AND file_type ='json' AND file_sid=961883e0-208f-11e6-9c41-474a6606bc87;
但它是插入新记录而不是更新现有记录。
请帮帮我
下面是我要更新 url 列值的表中的数据示例
account_sid | file_type | file_sid | date_created | file_description | file_name | status | url
--------------------------------------+-----------+------------------- -------------------+--------------------------+------------------+-------- ---+--------+-----
e40daea7-b1ec-088a-fc23-26f67f2052b9 | json | e15e02f0-20ab-11e6-9c41-474a6606bc87 | 2016-05-22 00:00:00+0000 | descripton | testUrl1 | 1 |
【问题讨论】:
-
您能否在运行查询之前给出表中数据的示例?在您的情况下,所有 account_sid、file_type 和 file_sid 都必须相同,以便 Cassandra 更新现有记录。如果主键是唯一的,则使用 UPDATE 不会阻止它插入新记录。
-
我更新了问题请看上面的例子。
-
您的问题似乎有误。如果您的更新包含完整的 PRIMARY KEY,那么创建新记录是什么意思。您可以发布创建的两个记录吗?不可能有两行具有相同的主键。
-
另外,没有像 Cassandra 2.3 这样的版本。 2.2 之后的下一个主要版本是 3.0。