私はthis driverを使ってGoからpsqlと通信します。今、私が更新クエリを発行するとき、実際に何かを更新したかどうかを知ることはできません(idが存在しない場合は0行を更新できます)。PsqlがGoでレコードを正常に更新したかどうかを確認するには
_, 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)
しかし、この1 = 1 idはデータベースに存在しない場合& IDをスキャンするために失敗しました。
だから私の更新は何を更新するかどうかをチェックするための標準的な方法は何ですか?
可能/関連複製(http://stackoverflow.com/questions/33751165/mysql -insert-float32-and-float64-go) – icza