📜  在 Cassandra 中更新列

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

在本文中,我们将讨论如何更新现有列,如何在 Cassandra 中添加新列或删除列等。

更新列

在 Cassandra 中,通过执行 ALTER 语句来修改列。使用 ALTER 表语句您可以更改列的类型、添加新列、删除列、重命名现有列,如下所示:

ALTER TABLE [keyspace_name.] table_name 
[ALTER column_name TYPE cql_type]
[ADD (column_definition_list)]
[DROP column_list | COMPACT STORAGE ]
[RENAME column_name TO column_name]
[WITH table_properties];

现在,如果您想更改具有主键的列名。例如:在 User_Data 现有表中,如果要将列名从 id 更改为 user_id,则可以运行 Rename 命令。

CREATE TABLE app_data.user_data (
    id UUID PRIMARY KEY,
    address text,
    name text
);

cassandra@cqlsh:app_data> 
select * from User_Data;

 id | address | name
----+---------+------

现在,要更改列名,您可以执行下面给出的以下 CQL 查询。

cassandra@cqlsh:app_data> 
Alter table User_data RENAME id TO User_id;

现在,要验证列是否成功更改的结果,您可以执行以下 CQL 查询。

cassandra@cqlsh:app_data> describe User_data;

CREATE TABLE app_data.user_data (
    user_id uuid PRIMARY KEY,
    address text,
    name text
) WITH bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 
                   'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = 
{
'class': 'org.apache.cassandra
          .db.compaction.SizeTieredCompactionStrategy', 
'max_threshold': '32', 'min_threshold': '4'
}
    AND compression = 
{
'chunk_length_in_kb': '64', 
'class': 'org.apache.cassandra
         .io.compress.LZ4Compressor'
}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';

现在,要查看表的输出,您可以执行以下 CQL 查询。

cassandra@cqlsh:app_data> 
SELECT * FROM user_data;

 user_id | address | name
---------+---------+------

(0 rows)