【问题标题】:golang pq sql driver: pq: invalid input syntax for type uuid error typegolang pq sql驱动程序:pq:uuid类型错误类型的无效输入语法
【发布时间】:2021-11-17 04:43:37
【问题描述】:

我正在尝试处理 Postgres 错误。 如果用户发送无效的 uuid - Postgres 返回错误消息:pq: invalid input syntax for type uuid:...

所以,我想检查那个错误,如果错误等于无效输入语法错误 - 我想向客户端显示 404 错误,而不是返回服务器错误。

但我在 Postgres 库中找不到返回错误的定义错误类型...

有人可以建议我,返回的错误在哪里?

【问题讨论】:

  • 您能添加更多上下文吗?你在用github.com/lib/pq吗?
  • 一个建议:您可以在查询数据库之前验证参数。

标签: go pq


【解决方案1】:

在查询中,您可以将uuid 列转换为text。这里有两种方法可以做到这一点:

SELECT * FROM user WHERE id::text = 'sometext'
SELECT * FROM user WHERE text(id) = 'sometext'

这里也讨论过: https://stackoverflow.com/a/46494463/2316115

PostgreSQL 类型转换记录在这里: https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-TYPE-CASTS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 2018-09-29
    • 2020-02-29
    相关资源
    最近更新 更多