我使用这个驱动程序从 Go 与 psql 进行通信。现在,当我发出更新查询时,我不可能知道它是否真的更新了任何东西(如果不存在这样的 id,它可以更新 0 行)。
_, err := Db.Query("UPDATE tags SET name=$1 WHERE id=1", name)
我试图调查 err 变量(以文档建议插入语句的方式):
if err == sql.ErrNoRows {
...
}
但即使 id 不存在,err 仍然为空。
我还尝试将 QueryRow 与返回子句一起使用:
id := 0
err := Db.QueryRow("UPDATE tags SET name=$1 WHERE id=1 RETURNING id", name).Scan(&id)
但是当数据库中不存在 id=1 时,这个无法扫描 &id。
那么检查我的更新是否更新了什么的规范方法是什么?