首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当实体id包含特殊字符时,Fiware Cygnus PostgreSQL接收器不会创建表。

问当实体id包含特殊字符时,Fiware Cygnus PostgreSQL接收器不会创建表。
EN

Stack Overflow用户
提问于 2020-11-10 10:38:20
回答 1查看 95关注 0票数 1

当实体具有包含PosgreSQL chracter的id时,cygnus及其-接收器似乎无法创建postgres表,例如Fiware教程中推荐的urn:ngsi-ld:Motion:001。

我建立了一个简单的堆栈与猎户座,一个物联网代理,以及Cygnus和一个PostgreSQL数据库.

但是,PostgreSQL报告了错误

代码语言:javascript
复制
2020-11-10 08:39:33.404 UTC [66] ERROR: syntax error at or near "-" at character 44
2020-11-10 08:39:33.404 UTC [66] STATEMENT: CREATE TABLE IF NOT EXISTS openiot.urn_ngsi-ld_motion_001_thing (recvTimeTs text,recvTime text,fiwareServicePath text,entityId text,entityType text,attrName text,attrType text,attrValue text,attrMd text)

当使用不同的实体id时,不会发生错误。然后按预期的方式保存数据。

然而,天鹅座_似乎并没有发生这种情况。这只是一个bug,还是我需要某种名称映射来解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-02-10 11:21:24

从Postgresql接收器文档中的编码部分的角度来看,似乎没有对-进行特殊编码。

因此,-将发展为Postgresql表创建逻辑,并引发一个错误,因为它在表名中被数据库禁止。

您可以探索名称映射选项(尽管我不确定是否可以使用它更改实体it.)。另一个可能的解决方法(非常简单)是在实体ids中不使用-,例如:urn:ngsild:Motion:001

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

https://stackoverflow.com/questions/64767280

复制
相关文章

相似问题

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