插入具有自动增量的行

时间:2017-05-26 07:04:50

标签: cassandra cassandra-2.0 cassandra-2.1

我创建了这个表

CREATE TABLE table_test(
   id uuid PRIMARY KEY,
   varchar,
  description varchar
);

我期待由于id是uuid,它会自动自动增加

INSERT INTO table_test (title,description) VALUES ('a','B');

抛出错误

com.datastax.driver.core.exceptions.InvalidQueryException: Some partition key parts are missing: id
  com.datastax.driver.core.exceptions.InvalidQueryException: Some partition key parts are missing: id

知道我做错了什么。

1 个答案:

答案 0 :(得分:2)

使用now()函数

  

在协调器节点中,在执行语句时以毫秒为单位生成新的唯一timeuuid。 timeuuid的时间戳部分符合UTC(通用时间)标准。此方法对于插入值很有用。 now()返回的值保证是唯一的。

Cassandra中没有自动增量选项。

now()函数返回一个timeuuid,它不是自动递增。它有两个bigint部分MSB和LSB。 MSB是当前时间戳,LSB是主机的时钟序列和节点ip的组合。并且它是通用的唯一

使用以下查询插入:

INSERT INTO table_test (id,title,description) VALUES (now(),'a','B');

来源:http://docs.datastax.com/en/cql/3.3/cql/cql_reference/timeuuid_functions_r.html