如何更新Cassandra中的timeuuid列?
我尝试了以下查询
cqlsh:mydb> UPDATE mytable SET mycolumn = '99b47d70-b465-11e9-8080-808080808080' WHERE mycolumn= '99a53b30-b465-11e9-8080-808080808080';但是它失败了
InvalidRequest:来自服务器的错误: code=2200无效查询message=“timeuuid”类型的"mycolumn“的无效字符串常量(99b47d70-b465-11e9-8080-808080808080)
因此我尝试将常量值转换为timeuuid。
cqlsh:mydb> UPDATE mytable SET mycolumn = cast('99b47d70-b465-11e9-8080-808080808080' as timeuuid) WHERE mycolumn= cast('99a53b30-b465-11e9-8080-808080808080' as timeuuid);这一次它错误地失败了。
SyntaxException:第1行:34在输入时没有可行的替代方案(“”)(更新mytable集mycolumn = cast )
我看到了关于cast函数的文档,在输出类型下没有列出任何其他类型的timeuuid。
这是否意味着创建后无法更新timeuuid列?
更新:I在上面的页面中看到了以下信息
UPDATE语句SET子句不能用于更改主键字段;因此,只有当目标字段不是主键字段的一部分时,才能设置新的timeuuid。
因此,可以更新timeuuid列。mycolumn不是主键的一部分。
更新2:
即使是下面的命令也有相同的错误no viable alternative at input失败
UPDATE website SET api_key = api_key WHERE 1;那么我做错了什么呢?
发布于 2019-08-01 14:40:38
https://stackoverflow.com/questions/57311126
复制相似问题