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”