gpt4 book ai didi

cassandra - 如何在 CQL3 中为复合键列提供空列值

转载 作者:行者123 更新时间:2023-12-04 20:45:19 25 4
gpt4 key购买 nike

这听起来可能很愚蠢,因为 SQL 的复合主键中没有空值。但只是想确认我们是否可以在 CQL3 中拥有相同的内容?
所以,我们有一个这样的表来存储宽行:

CREATE TABLE keyspace12.colFamily1 
(
id text,
colname text,
colvalue blob,
PRIMARY KEY (id,colname, colvalue)
) WITH COMPACT STORAGE

我们有一些 colname 为空的情况。我可以这样做吗?如果是,那么如何?如果否,那么存储宽列行的方法是什么,我们可以在 cassandra 的复合列的第一部分有一些空值(根据 Thrift 的约定)?

相关问题是:
CQL3 and millions of columns composite key use caseCassandra -How to create composite column name (not key) using cqlsh

最佳答案

说我有一个专栏家庭

CREATE TABLE cnt_test (time_slot text , comp1 text, comp2 text, field1 counter, field2 counter, PRIMARY KEY(time_slot,comp1, comp2));

现在我正在尝试在其中插入一些数据
UPDATE cnt_test SET field1=field1+1, field2=field2+2 WHERE time_slot='20130924' AND comp1='' AND comp2='ABC';
UPDATE cnt_test SET field1=field1+1, field2=field2+2 WHERE time_slot='20130924' AND comp1='' AND comp2='ABC';
UPDATE cnt_test SET field1=field1+1, field2=field2+2 WHERE time_slot='20130924' AND comp1='' AND comp2='ABC';
UPDATE cnt_test SET field1=field1+1, field2=field2+2 WHERE time_slot='20130924' AND comp1='' AND comp2='XYZ';
UPDATE cnt_test SET field1=field1+1, field2=field2+2 WHERE time_slot='20130924' AND comp1='PQR' AND comp2='';

正如你在上面的语句中看到的,我在复合键部分插入了一些空值,而不是 我把 空白 特点。

我什至可以查询同一个
 SELECT * FROM cnt_test WHERE time_slot='20130924' AND comp1='' AND comp2='ABC';

time_slot | comp1 | comp2 | field1 | field2
-----------+-------+-------+--------+--------
20130924 | | ABC | 4 | 8

(1 rows)

SELECT * FROM cnt_test WHERE time_slot='20130924' AND comp1='PQR' AND comp2='';

time_slot | comp1 | comp2 | field1 | field2
-----------+-------+-------+--------+--------
20130924 | PQR | | 1 | 2

(1 rows)

所以总结每件事只需用空列替换空列值,即 ''

关于cassandra - 如何在 CQL3 中为复合键列提供空列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18963248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com