我使用这个驱动程序从Go中与psql通信。现在,当我发出更新查询时,我无法知道它是否实际上更新了任何内容(如果不存在此ID,则可以更新0行)。
_, err := Db.Query("UPDATE tags SET name=$1 WHERE id=1", name)
我尝试按照文档中Insert语句的建议去调查err变量:
if err == sql.ErrNoRows {
...
}
即使id不存在,err仍然是null。
我还尝试使用带返回语句的QueryRow:
id := 0
err := Db.QueryRow("UPDATE tags SET name=$1 WHERE id=1 RETURNING id", name).Scan(&id)
但是当数据库中不存在id=1时,此代码不能扫描到&id。
那么检查我的更新是否有更新任何内容的规范方式是什么?