首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将非*投影与光滑的“回归”结合起来

将非*投影与光滑的“回归”结合起来
EN

Stack Overflow用户
提问于 2017-12-03 20:39:40
回答 1查看 185关注 0票数 0

我有两个工作语句可以将一行插入到一个名为document的Slick表中。

第一个列插入从row对象获取的所有列,并返回Postgres生成的ID:

代码语言:javascript
复制
(Tables.Document returning Tables.Document.map(_.id)) +=
    DocumentRow(id=-1, name="Name", fulltext="The text")

第二种方法忽略名为fulltext的列,只插入name,但不返回生成的ID:

代码语言:javascript
复制
Tables.Document.map(r => (r.name)) += ("Name")

如何将两者合并(将插入限制为列的子集并同时返回生成的ID )?

背景:

我想从insert中排除全文列的原因是它是Postgres类型的tsvector,但是生成的光滑代码将它视为字符串。在插入时,值(即使是nullNone)转换为与tsvector不兼容并引发异常的某种文本类型。在没有附加库的情况下,我没有找到插入tsvector的解决方案。如果你认为有,我应该走这条路,请发表评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-04 02:07:35

虽然我相信正确的方法是解决tsvector问题,但我没有足够的邮政经验来帮助你。至于您的解决方案,您可以这样做,代码应该如下所示:

代码语言:javascript
复制
(Tables.Document.map(r => (r.name)) returning Tables.Document.map(_.id)) += ("Name")

如果将其分成几个部分,您可以看到,首先创建了一个Query,如第二个示例所示,但是与其立即对其应用+=,不如首先使用returning链接它,然后调用+=

使用额外的邮电感知库有什么问题?

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

https://stackoverflow.com/questions/47623049

复制
相关文章

相似问题

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