Cassandra 在特定列之后添加列

标签 cassandra cql alter

我需要更改表格以在特定列之后或作为最后一列添加新列,我已经浏览了该文档但没有运气。

最佳答案

假设我从一个具有以下定义的表开始:

CREATE TABLE mykeyspace.letterstable (
    column_n TEXT,
    column_b TEXT,
    column_c TEXT,
    column_z TEXT,
    PRIMARY KEY (column_n));

1- 添加一列是一件简单的事情。
ALTER TABLE mykeyspace.letterstable ADD column_j TEXT;

2- 添加新列后,我的表定义将如下所示:
desc table mykeyspace.letterstable;

CREATE TABLE mykeyspace.letterstable (
    column_n TEXT,
    column_b TEXT,
    column_c TEXT,
    column_j TEXT,
    column_z TEXT,
    PRIMARY KEY (column_n));

这是因为 Cassandra 中的列是按 ASCII-betical 顺序存储的,在键之后(所以 column_n 将始终是第一个,因为它是唯一的键)。我不能告诉 Cassandra 我想要我的新 column_j去追 column_z .它将把它放在 column_c 之间和 column_z在其自己的。

关于Cassandra 在特定列之后添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47356941/

相关文章:

cassandra - JanusGraph "NoHostAvailableException"在多数据中心

database-design - Cassandra 中的用户信息存储

elasticsearch - Elassandra索引数据大小比实际数据大10倍

Cassandra cql select 查询总是抛出读取超时异常

java - 在现有表上创建序列 - ORA-00940 : invalid ALTER command

postgresql - 更改 Postgres 整数列以键入 bool 值

jdbc - 使用cassandra-jdbc-1.2.1 jar创建表时出错

cassandra - 使用 Cassandra 进行事件重复数据删除

cassandra - Apache Nifi/Cassandra - 如何将 CSV 加载到 Cassandra 表中

mysql - 使用循环向 mySQL 表添加列