首页 > 解决方案 > 如果在 cassandra 的不同列上存在更新记录,则需要为列插入记录

问题描述

我有一个类似于下面的表,其中名称是主键

name    pay creation date   update date
mike    1000    3/1/2020    3/1/2020

我需要向表中插入多条记录,如果记录已经存在,我需要更新该行。挑战是创建日期。创建日期不应该更新,它只是需要插入。我正在使用简单的更新查询,例如

update table_name set pay=2000,creation date=sys date,update date=sysdate where name='mike';

标签: cassandracql

解决方案


在 Cassandra 中,INSERT 和 UPDATE 之间没有区别(如果您不使用轻量级事务) - 一切都是 UPSERT。这意味着,如果您执行 INSERT 并且行存在,那么数据将被更新,如果您执行 UPDATE 并且行不存在,它将被创建。因此,对于您的问题 - 您可以只执行 INSERT,而不必担心检查行是否存在,并执行 UPDATE 而不是 INSERT。


推荐阅读