Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cassandra 我可以将用户计数器类型字段作为我的C*表的主键吗?_Cassandra_Datastax_Cassandra 3.0 - Fatal编程技术网

Cassandra 我可以将用户计数器类型字段作为我的C*表的主键吗?

Cassandra 我可以将用户计数器类型字段作为我的C*表的主键吗?,cassandra,datastax,cassandra-3.0,Cassandra,Datastax,Cassandra 3.0,当我试图创建如下表时 create table if not exists counter_temp(id counter PRIMARY KEY , comment text); 它给出的错误如下 这条线上有多个标记 对于包含计数器列的表,除主键外的所有列都必须是类型计数器 主键部件不支持计数器类型 问题1: 原因是什么,计数器列不允许作为主键的一部分 问题2: 而我正试图创建如下 创建表(如果不存在计数器临时值)(id uuid主键、计数器、注释文本) 错误:不能在同一个表中混合

当我试图创建如下表时

 create table if not exists counter_temp(id counter PRIMARY KEY , comment text);
它给出的错误如下

这条线上有多个标记

  • 对于包含计数器列的表,除主键外的所有列都必须是类型计数器

  • 主键部件不支持计数器类型

问题1:

原因是什么,计数器列不允许作为主键的一部分

问题2: 而我正试图创建如下

创建表(如果不存在计数器临时值)(id uuid主键、计数器、注释文本)

错误:不能在同一个表中混合计数器列和非计数器列

这里怎么了?如何正确处理

问题3:

我在Dev env中有一个表emp(emp_id counter,emp_name text),其中有数据,现在我需要将该数据复制到另一个SIT env emp(emp_id counter,emp_name text)表中


是否可以正确复制计数器字段?

问题1的简短答案是否,因为它在错误消息中传达。但即使它是被允许的,那个么它也并没有任何意义——当您更改主键的值时,基本上就是用不同的主键创建一个新行

对于Q2-如果表中至少有一个
计数器
列,则所有其他常规列应具有类型
计数器
。如果需要添加注释字段,只需创建第二个表,其中包含
UUID
primary key&同时向两个表插入或读取数据


对于Q3-cqlsh的
COPY
命令支持带有计数器的表,用于较新的Cassandra版本(其中实施了针对的修复)。此外,Spark Cassandra连接器能够从带有计数器的表中读取并写入计数器。但在这两种情况下,请确保目标表为空,否则新值将附加到现有值。

问题1的简短答案为否,因为它在错误消息中传达。但即使它是被允许的,那个么它也并没有任何意义——当您更改主键的值时,基本上就是用不同的主键创建一个新行

对于Q2-如果表中至少有一个
计数器
列,则所有其他常规列应具有类型
计数器
。如果需要添加注释字段,只需创建第二个表,其中包含
UUID
primary key&同时向两个表插入或读取数据


对于Q3-cqlsh的
COPY
命令支持带有计数器的表,用于较新的Cassandra版本(其中实施了针对的修复)。此外,Spark Cassandra连接器能够从带有计数器的表中读取并写入计数器。但在这两种情况下,请确保目标表为空,否则新值将附加到现有值。

对于Q2,您只能有一个表,其中计数器为非主键列(常规列)。不能将计数器类型的列与其他列类型混合。在这种情况下,只需为您的
comment
列添加一个单独的表,就像这样
(id uuid主键,comment text)
,然后单独写入。对于Q2,您只能有一个表,其中计数器为非主键列(常规列)。不能将计数器类型的列与其他列类型混合。在这种情况下,只需为您的
comment
列添加一个单独的表,如下面的
(id uuid主键,comment text)
,然后分别对其进行写入