gre*_*ala 14 cql cassandra cqlsh
我知道使用UPDATE是不可能的.
我想要做的是将所有行,例如PK = 0迁移到PK = 1的新行.有没有简单的方法来实现这一目标?
Aar*_*ron 18
对于一种相对简单的方法,您总是可以COPY在cqlsh中快速进行TO/FROM.
假设我有一个名为"emp"的列族(表)用于员工.
CREATE TABLE stackoverflow.emp (
id int PRIMARY KEY,
fname text,
lname text,
role text
)
Run Code Online (Sandbox Code Playgroud)
为了这个例子的目的,我有一行.
aploetz@cqlsh:stackoverflow> SELECT * FROM emp;
id | fname | lname | role
----+-------+-------+-------------
1 | Angel | Pay | IT Engineer
Run Code Online (Sandbox Code Playgroud)
如果我想用新的id重新创建Angel,我可以COPY将表的内容改为TO.csv文件:
aploetz@cqlsh:stackoverflow> COPY stackoverflow.emp TO '/home/aploetz/emp.csv';
1 rows exported in 0.036 seconds.
Run Code Online (Sandbox Code Playgroud)
现在,我将使用我最喜欢的编辑器在emp.csv中将Angel的id更改为2.请注意,如果文件中有多行(不需要更新),则可以将其删除:
2,Angel,Pay,IT Engineer
Run Code Online (Sandbox Code Playgroud)
我将保存文件,然后COPY更新的行回到Cassandra FROM文件中:
aploetz@cqlsh:stackoverflow> COPY stackoverflow.emp FROM '/home/aploetz/emp.csv';
1 rows imported in 0.038 seconds.
Run Code Online (Sandbox Code Playgroud)
现在Angel在"emp"表中有两行.
aploetz@cqlsh:stackoverflow> SELECT * FROM emp;
id | fname | lname | role
----+-------+-------+-------------
1 | Angel | Pay | IT Engineer
2 | Angel | Pay | IT Engineer
(2 rows)
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看COPY上的DataStax文档.
| 归档时间: |
|
| 查看次数: |
14898 次 |
| 最近记录: |