3

pgx 的新人。使用 pgxpool。我有一个简单的查询

var result string
err := Conn.QueryRow(context.Background(),
    `SELECT name FROM table WHERE id=1000`).Scan(&result)

if err != nil {
    if err == pgx.ErrNoRows {
        fmt.Println("No Rows")
        fmt.Println(err)
    } else {
        fmt.Println("Other Error")
        fmt.Println(err)
    }
}

即使实际上返回了 No Rows,我也永远不会得到“No Rows”。错误总是“结果集中没有行”,但它从不匹配 pgx.ErrNoRows,因为我知道它们应该是相同的。

在检查类型时,pgx.ErrNoRows = *errors.fundamental 而 err = *xerrors.errorString。

我在做什么或假设磨损?

编辑:

正如下面提到的@mkopriva,问题是goimport自动导入了错误的pgx,它需要是“github.com/jackc/pgx/v4”

4

0 回答 0