在迭代新功能时,我的团队在DSE数据库中创建了一个列表列 . 我们现在希望它是一个设置列 . 我删除了列并将其再次创建为set列并出现此错误:
ALTER TABLE sometable DROP somecolumn;
ALTER TABLE sometable ADD somecolumn set<text>;
InvalidRequest:来自服务器的错误:code = 2200 [无效查询] message =“无法添加具有名称集成的集合,因为过去已经使用了具有相同名称和不同类型(列表)的集合”
列中甚至没有任何数据 . 是不是有某种硬删除覆盖?我们可以更改名称,但我真的不喜欢这个名称的想法,如果有人试图使用它,它将无效 . 我需要重拍整张 table 吗?
1 回答
实际上,这似乎是 Cassandra 的一种奇怪行为 . 幸运的是,有一个简单的解决方法,您不需要重新创建表 .
使用非集合类型(如
int
)重新创建列并再次删除它 . 然后你可以创建它 .(基于Cassandra: Adding new column to the table中的评论)