cassandra中的布尔值

mkh04yzy  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(471)

我在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'

wlzqhblo

wlzqhblo1#

cassandra不像传统的sql数据库。它不在表中存储行。考虑Cassandra数据模型的最好方法是想象一个 sortedMap<rowKey, map<columnKey, value>> .
这意味着任何特定的行都不需要与任何其他行具有相同的字段/列。在您的示例中,插入的行没有名为 testboolean .
为了了解更多,我可以推荐在这里参考。不,不能为列设置默认值(或者只能在应用程序端设置)。

相关问题