我需要对Cassandra表执行插入操作,而不为任何列创建逻辑删除。我正在使用类似于此的查询:
insert into my_table(col1,col2,col3) values(val1,val2,null)
其中col1,col2和col3是my_table中的所有属性。
除了在查询中仅传递非null属性并让cassandra将其余属性设置为null之外,是否有任何其他解决方案或解决方法来阻止创建col3
的逻辑删除?
答案 0 :(得分:5)
请勿在插页中加入col3
,而且它不会设置任何内容。
insert into my_table(col1,col2) values(val1,val2)
如果对磁盘上的结构感到好奇,请执行nodetool flush
并在创建的sstable上运行sstabledump以查看差异。
答案 1 :(得分:3)
如果插入空值,Cassandra将创建逻辑删除。如果您知道col3将为null,请不要在查询中使用它。
insert into my_table(col1,col2) values(val1,val2)
我会就这个问题提出两篇非常好的文章
答案 2 :(得分:0)
假设您正在使用准备好的语句,您可以使用" unset"功能是introduced in Cassandra 2.2.0,它允许您使用不带值的假准备语句变量,而不在服务器上创建逻辑删除。 Java driver 3.0.0和其他驱动程序支持它。