调用Cassandra函数而不选择(使用CQL)

时间:2016-01-01 04:12:22

标签: cassandra cql

有许多Cassandra内置函数,例如now()uuid()。是否可以使用CQL在没有SELECT操作的情况下调用这些函数?到目前为止,我必须做

SELECT count(*), uuid() from table;

table是一个始终为空的表。

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,如果不执行查询/ upsert,则无法调用uuid()now()等函数。但我确实有办法让你不必保持一张空桌子。

SELECT uuid() FROM system.local;

system.local将:

A)永远在那里。

B)只包含一行。

它类似于你现在正在做的事情,但同样,它会阻止你只需维护一个空表来生成一个UUID。

Upsert示例

如果我有这样的表:

CREATE TABLE timetest (
  yearmonth TEXT,
  id UUID,
  value TEXT,
  PRIMARY KEY (yearmonth, id));

我可以插入它并生成一个像这样的新UUID:

INSERT INTO timetest (yearmonth,id,value) 
VALUES ('201601',uuid(),'v1');