2

我试图了解如何做到这一点,或者如果我不能,为什么我不能这样做。IE

cqlsh:ps> create table s1 (a text, b text, stuff text, primary key(a,b));
cqlsh:ps> select * from s1 where a='a' and b=null;
Bad Request: Invalid null clustering key part b

似乎有一种解决方法,即不要在“b”列中存储空值,而是像“##null##”这样的东西,但这似乎很愚蠢。

任何帮助将非常感激。

4

1 回答 1

4

您不能将 anull插入b,因为它是集群键的一部分。如果您尝试按照以下方式插入查询:
INSERT INTO ps.s1 (a, b, c) VALUES ('a', null, 'c_val');
您应该得到一个异常:
Bad Request: Invalid null value for clustering key part password

如果您想检索a=的所有数据,a那么您只需执行以下操作:

select * from s1 where a='a';

但是,您可以将空值插入不属于键的字段中:

INSERT INTO ps.s1 (a, b, c) VALUES ('a', 'b', null); 
于 2013-08-11T14:01:43.430 回答