我在cassandra boolean数据类型中看到一个问题,
我有一个表,其中一个字段是布尔值
CREATE TABLE keyspace.issuetable (
"partitionId" text,
"name" text,
"field" text,
"testboolean" boolean,
PRIMARY KEY ("partitionId", "name"));
现在,当我尝试在表中插入时,我没有添加布尔值“testboolean”
INSERT into keyspace.issuetable("partitionId", "name", "field")
VALUES ('testpartition', 'cluster1_name','testfiled');
问题:
1) 如果insert query中的boolean条目(比如testboolean条目)没有按照数据类型添加,那么它需要为“false”,但会添加为null
SELECT * FROM issuetable ;
partitionId | name | field | testboolean
---------------+---------------+-----------+-------------
testpartition | cluster1_name | testfiled | null
你能解释一下为什么吗?也让我知道解决这个问题的方法,我希望是'false'而不是'null'
1条答案
按热度按时间wlzqhblo1#
cassandra不像传统的sql数据库。它不在表中存储行。考虑Cassandra数据模型的最好方法是想象一个
sortedMap<rowKey, map<columnKey, value>>
.这意味着任何特定的行都不需要与任何其他行具有相同的字段/列。在您的示例中,插入的行没有名为
testboolean
.为了了解更多,我可以推荐在这里参考。不,不能为列设置默认值(或者只能在应用程序端设置)。