📜  Cassandra 中的静态类型

📅  最后修改于: 2021-09-08 15:24:11             🧑  作者: Mango

在本文中,我们将讨论一个静态列,我们将在其中了解静态列的用途以及实际作用是什么。我们来看一下。

静态列:
在 Cassandra 查询语言 (CQL) 中,它是一个由分区的所有行共享的特殊列。当我们想要共享具有单个值的列时,静态列非常有用。
在 Cassandra 查询语言中,静态列仅在给定分区内是静态的。静态列使用聚集列和非聚集列在表定义中声明静态列。

让我们通过一个例子来理解。
现在,首先,我们将定义表中的静态列。

create table bank_emp_record
(
Name text,
bank_name text static,
Id int,
primary key(Name, Id)
); 

现在,我们将向 bank_emp_record 表中插入数据。

Insert into bank_emp_record(Name, bank_name, Id) 
values('Ashish', 'Employee bank', 101);

Insert into bank_emp_record(Name, bank_name, Id) 
values('Ashish', 'Employee bank change', 102);

Insert into bank_emp_record(Name, bank_name, Id) 
values('Ashish', 'Employee bank change new', 103); 

输出:

在这里,Employee bank change new 最终将更新并共享列值到同一个静态列。

现在,让我们考虑如果我不为 bank_name 插入任何值,那么默认情况下它将共享相同的值。我们来看一下。

BEGIN BATCH
Insert into bank_emp_record(Name, Id) 
values('Ashish', 104);

Insert into bank_emp_record(Name, Id) 
values('Ashish', 105);
APPLY BATCH; 

在上面给出的 CQL 查询中,我们使用 BATCH 语句在表中插入更多行。现在,让我们看看表格的最终输出。

select * 
from bank_emp_record; 

输出:

要了解限制,请按照下面给出的链接了解创建静态列时的限制类型以及如何正确使用该限制参考:DataStax