このドライバーを使用して、Go から psql と通信します。更新クエリを発行すると、実際に何かを更新したかどうかを知ることはできません (そのような ID が存在しない場合、0 行を更新できます)。
_, err := Db.Query("UPDATE tags SET name=$1 WHERE id=1", name)
エラー変数を調査しようとしました(ドキュメントが Insert ステートメントに対して提案する方法で):
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 のスキャンに失敗します。
では、私の更新が何かを更新したかどうかを確認する標準的な方法は何ですか?