postgresql - “订单”处或附近的语法错误(带有 Quill、Doobie 和 PostgreSQL 的 Scala)
问题描述
我正在将 Quill 与 Doobie 和 PostgreSQL(org.tpolecat.doobie-quill
版本 0.13.1 的工件)一起使用。
这段代码
case class SomeRecord(id: Int, order: Int, name: String)
val record = SomeRecord(0, 0, "test")
run(
quote(
querySchema[SomeRecord]("some_table")
).insert(lift(record))
)
将在运行时出现错误消息:
org.postgresql.util.PSQLException:错误:“订单”或附近的语法错误位置:org.postgresql.core.v3.QueryExecutorImpl 的 org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2553) 的 46 .processResults(QueryExecutorImpl.java:2285) 在 org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:323) 在 org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:481) 在 org.postgresql。 jdbc.PgStatement.execute(PgStatement.java:401) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:164) at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:130) at com.zaxxer .hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) 在 com.zaxxer.hikari.pool.HikariProxyPreparedStatement。executeUpdate(HikariProxyPreparedStatement.java) 在 doobie.free.KleisliInterpreter$PreparedStatementInterpreter.$anonfun$executeUpdate$5(kleisliinterpreter.scala:955) 在 doobie.free.KleisliInterpreter$PreparedStatementInterpreter.$anonfun$executeUpdate$5$adapted(kleisliinterpreter.scala:955)在 doobie.free.KleisliInterpreter.$anonfun$primitive$2(kleisliinterpreter.scala:109)
解决方案
似乎 Quill 不会转义类似关键字的列名,因此其查询中的“顺序”(和其他关键字)列将始终失败。请参阅在 Postgres 中转义类似关键字的列名。解决方法是重命名表中的列(以及相应的案例类)。
推荐阅读
- excel - 如何在同一行上制作 Excel 公式引用单元格?
- c - Openmp simd(增量向量)
- excel - 数一数。列表中的对
- python-3.x - 隐藏小部件时如何阻止 PyQt5 删除小部件?
- php - 名言正则表达式不起作用
- javascript - 在上传期间调整图像大小(Canvas 和 SimpleImage 库)
- pocketsphinx - ubuntu的声音文件到文本文件语音识别,特别是pocketsphinx的使用
- python - 操作系统模块脚本做的事情但是在终端上抛出错误
- django - 如何检查Django Views列表中的对象
- java - 打印 AVL 树的顶部“m”个元素