Slick 3 - 如何在使用纯 SQL 插入时获得正确的(数据库)架构
Posted
技术标签:
【中文标题】Slick 3 - 如何在使用纯 SQL 插入时获得正确的(数据库)架构【英文标题】:Slick 3 - how to get correct (database) schema when inserting with plain SQL 【发布时间】:2021-12-17 04:44:32 【问题描述】:我试图让基本的普通 SQL 示例在 Slick 3 中工作,在 Postgres 上但使用自定义 DB 模式,比如 local
而不是默认的 public
之一。我很难在执行以下操作时插入行
sqlu"INSERT INTO schedule(user_id, product_code, run_at) VALUES ($userId, $code, $nextRun)"
说
org.postgresql.util.PSQLException: ERROR: relation "schedule" does not exist
该表已就位,因为当我在插入语句中为 schedule
加上 local.
前缀时,它按预期工作。如何获得为此查询提供的正确架构?
我将它用作 akka-projection 处理程序的一部分,并且所有投影内部结构(如维护偏移量)在 local
架构上按预期工作。
我不能简单地将schema
作为变量,因为它在解析参数时出错:
sqlu"INSERT INTO $schema.schedule(user_id, product_code, run_at) VALUES ($userId, $code, $nextRun)"
【问题讨论】:
在 JDBC 连接级别怎么样? ***.com/questions/4168689/… 废话,配置太多。没有在这个确切的地方指定架构。所以不是真的,但感谢你指出我正确的方向 【参考方案1】:您可以使用#$value
插入架构名称:
sqlu"INSERT INTO #$schema.table ..."
【讨论】:
谢谢,不知道那个语法。但问题是我的配置有些混乱,架构配置不正确。以上是关于Slick 3 - 如何在使用纯 SQL 插入时获得正确的(数据库)架构的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Slick 在 Postgres 中将 json 对象插入到 jsonb 类型的列中