首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新cassandra中的timeuuid列

如何更新cassandra中的timeuuid列
EN

Stack Overflow用户
提问于 2019-08-01 14:19:24
回答 1查看 360关注 0票数 1

如何更新Cassandra中的timeuuid列?

我尝试了以下查询

代码语言:javascript
复制
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。

代码语言:javascript
复制
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

cast

这是否意味着创建后无法更新timeuuid列?

更新:I在上面的页面中看到了以下信息

UPDATE语句SET子句不能用于更改主键字段;因此,只有当目标字段不是主键字段的一部分时,才能设置新的timeuuid。

因此,可以更新timeuuid列。mycolumn不是主键的一部分。

更新2:

即使是下面的命令也有相同的错误no viable alternative at input失败

代码语言:javascript
复制
UPDATE website SET api_key = api_key WHERE 1;

那么我做错了什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-01 14:40:38

我在Inserting a hard-coded UUID via CQLsh (Cassandra)找到了解决方案

您不应该将引号放在UUID周围,以阻止将其解释为字符串,即

没有必要引用uuid

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57311126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档