0
有小表我想限制在Cassandra中的单个分区。我尝试了各种常量作为分区键,但Cassandra拒绝为无效。例如primary key(1, other_column)
,primary key(true, other_column)
,primary key('1', other_column)
。有没有办法将表限制为单个分区而不向表中添加虚拟常量列?如何在Cassandra中定义常量分区键
有小表我想限制在Cassandra中的单个分区。我尝试了各种常量作为分区键,但Cassandra拒绝为无效。例如primary key(1, other_column)
,primary key(true, other_column)
,primary key('1', other_column)
。有没有办法将表限制为单个分区而不向表中添加虚拟常量列?如何在Cassandra中定义常量分区键
不能定义常量的值作为分区键或任何其他列
而是定义一个普通的列(即分区)作为分区键,每次插入/更新或删除使用一个恒定值的时间。
例子:
让我们创建一个表名为partition
列,并作为分区键。
现在CRUD操作:
INSERT INTO small_table(partition, other_column) VALUES(1, ?);
SELECT * FROM small_table WHERE partition = 1;
UPDATE small_table SET other_column = ? WHERE partition = 1;
DELETE FROM small_table WHERE partition = 1;
注:这是一个不好的设计,你的数据不会跨集群分布。所有您选择,插入,更新,删除操作将在包含此数据的主机和副本上执行