【发布时间】:2016-04-05 20:11:45
【问题描述】:
有许多 Cassandra 内置函数,例如 now() 或 uuid()。是否可以使用 CQL 在没有 SELECT 操作的情况下调用这些函数?到目前为止,我必须这样做
SELECT count(*), uuid() from table;
table 是一个始终为空的表。
有没有更好的办法?
【问题讨论】:
有许多 Cassandra 内置函数,例如 now() 或 uuid()。是否可以使用 CQL 在没有 SELECT 操作的情况下调用这些函数?到目前为止,我必须这样做
SELECT count(*), uuid() from table;
table 是一个始终为空的表。
有没有更好的办法?
【问题讨论】:
很遗憾,不,您不能在不执行查询/更新插入的情况下调用 uuid() 和 now() 之类的函数。但我确实有办法让你不必维护一张空桌子。
SELECT uuid() FROM system.local;
system.local 将:
A) 永远在那里。
和
B) 只包含一行。
这与您现在所做的类似,但同样,它使您不必维护一个空表来生成 UUID。
更新示例
如果我有这样的表:
CREATE TABLE timetest (
yearmonth TEXT,
id UUID,
value TEXT,
PRIMARY KEY (yearmonth, id));
我可以插入它并像这样生成一个新的 UUID:
INSERT INTO timetest (yearmonth,id,value)
VALUES ('201601',uuid(),'v1');
【讨论】: