Cassandra 为什么是cqlsh;创建;语句创建一个;uuid“;字段为;timeuuid";?

Cassandra 为什么是cqlsh;创建;语句创建一个;uuid“;字段为;timeuuid";?,cassandra,cqlsh,Cassandra,Cqlsh,卡桑德拉3.11.0 在Ubuntu 16.04.4、JRE-8中运行 我正在尝试创建一个带有uuid字段的表,如下所示: CREATE TABLE IF NOT EXISTS policy ( tenant_id text, policy_id uuid, name text, enabled boolean, creation_time bigint, PRIMARY KEY (te

卡桑德拉3.11.0
在Ubuntu 16.04.4、JRE-8中运行
我正在尝试创建一个带有uuid字段的表,如下所示:

CREATE TABLE IF NOT EXISTS policy (
  tenant_id         text,
  policy_id         uuid,
  name              text,
  enabled           boolean,
  creation_time     bigint,
  PRIMARY KEY (tenant_id, name)
);
执行此操作后,模式将“policy_id”显示为“timeuuid”,而不是“uuid”
看到[类似问题]:
但这是否适用于cqlsh

放弃表/键空间并重试,但没有成功
这是间歇性问题
获取以下异常:

Exception while loading CQL script:
com.datastax.driver.core.exceptions.InvalidQueryException: Type error: cannot assign result of function system.uuid (type uuid) to id (type timeuuid)
        at com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:50)
        at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37)
        at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:245)
        at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:68)
        at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:43)
在卡桑德拉日志中也可以看到以下内容:

org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch (found e686a660-8994-11e9-984c-2767f9f5fd28; expected e5d72c80-8994-11e9-b706-831d59206120)
    at org.apache.cassandra.config.CFMetaData.validateCompatibility(CFMetaData.java:808) ~[apache-cassandra-3.11.0.jar:3.11.0]
    at org.apache.cassandra.config.CFMetaData.apply(CFMetaData.java:770) ~[apache-cassandra-3.11.0.jar:3.11.0]
    at org.apache.cassandra.config.Schema.updateTable(Schema.java:621) ~[apache-cassandra-3.11.0.jar:3.11.0]
    at org.apache.cassandra.schema.SchemaKeyspace.updateKeyspace(SchemaKeyspace.java:1430) ~[apache-cassandra-3.11.0.jar:3.11.0]
    at org.apache.cassandra.schema.SchemaKeyspace.mergeSchema(SchemaKeyspace.java:1386) ~[apache-cassandra-3.11.0.jar:3.11.0]
    at org.apache.cassandra.schema.SchemaKeyspace.mergeSchemaAndAnnounceVersion(SchemaKeyspace.java:1336) ~[apache-cassandra-3.11.0.jar:3.11.0]
    at org.apache.cassandra.service.MigrationTask$1.response(MigrationTask.java:91) ~[apache-cassandra-3.11.0.jar:3.11.0]
    at org.apache.cassandra.net.ResponseVerbHandler.doVerb(ResponseVerbHandler.java:53) [apache-cassandra-3.11.0.jar:3.11.0]
    at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:66) [apache-cassandra-3.11.0.jar:3.11.0]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_131]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_131]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_131]
    at org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:81) [apache-cassandra-3.11.0.jar:3.11.0]
    at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_131]
策略id应具有数据类型“uuid”,但它具有数据类型“timeuuid”

创建表需要cql语句中的任何其他关键字?

如何检查策略id是否为timeuuid?我试图复制您的问题,并在表上进行了描述,但策略id是uuid。感谢Simon,我从Devcenter连接并检查了架构,它显示了timeuuid。如何检查策略id是timeuuid?我试图复制您的问题,并在表上进行了描述,但policy_id是uuid。感谢Simon,我从Devcenter连接并检查了schema,它显示了timeuuid。