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