Кир*_*нко 5 cql cassandra cqlsh
假设我们有这样的表:
create table users (
id text,
roles set<text>,
PRIMARY KEY ((id))
);
Run Code Online (Sandbox Code Playgroud)
我希望这个表的所有值都存储在同一个Cassandra节点上(好的,不是真的一样,相同的3,但是镜像了所有的数据,但是你明白了),所以为了实现我想要改变这个表是这样的:
create table users_v2 (
partition int,
id text,
roles set<text>,
PRIMARY KEY ((partition), id)
);
Run Code Online (Sandbox Code Playgroud)
如何在不丢失第一个表格的数据的情况下做到这一点?为了添加这样的列,ALTER TABLE似乎是不可能的.我很好.我尝试做的是从第一个表复制数据并插入第二个表.当我按原样执行时,分区列将丢失,这是预期的.我可以改变第一个表并在末尾添加一个"分区"列,然后以正确的顺序复制COPY,但是我无法更新第一个表中的所有行来设置所有的分区,而且似乎没有添加列时的"默认"值.
| 归档时间: |
|
| 查看次数: |
7022 次 |
| 最近记录: |