2013-08-16 66 views
0

有没有办法撤销一个columnfamily更新命令?我试图更新一列,但结束了“更新columnfamily dev;”,现在我查看时只能看到id。但是如果我运行nodetool状态,数据似乎就存在那里。我试图恢复快照,但即使这样也没有帮助。撤销卡桑德拉意外更新

回答

1

所以,如果我让你正确你抹掉了列元,你现在得到的东西是这样的:

cqlsh:test> select * from user; 

uuid 
-------------------------------------- 
fd24b190-072d-11e3-a1c4-97db6b0653ce 
054a43d0-072e-11e3-a1c4-97db6b0653ce 
0aa71920-072e-11e3-a1c4-97db6b0653ce 
07fda400-072e-11e3-a1c4-97db6b0653ce 

,而你想要的东西是这样的:

uuid         | email    | name 
--------------------------------------+----------------------+------- 
fd24b190-072d-11e3-a1c4-97db6b0653ce | [email protected] | User0 
054a43d0-072e-11e3-a1c4-97db6b0653ce | [email protected] | User1 
0aa71920-072e-11e3-a1c4-97db6b0653ce | [email protected] | User3 
07fda400-072e-11e3-a1c4-97db6b0653ce | [email protected] | User2 

你可以得到数据通过添加关于列的信息返回。

鉴于原始表的定义是这样的:

CREATE TABLE user(
    uuid timeuuid PRIMARY KEY, 
    name varchar, 
    email varchar 
); 

您可以添加缺少的使用CQL列信息:

cqlsh:test> ALTER TABLE user ADD email varchar;     
cqlsh:test> ALTER TABLE user ADD name varchar;