Slide 37
Slide 37 text
37
不可分性を保つために
func changeState(db *sql.DB, from to state, .....) (err error) {
result, err := db.Exec("UPDATE sync_state SET state = to where state = from and …")
affected, err := result.RowsAffected()
if affected < 1 {
/* 更新行なし = 他のプロセスで変更された */
}
}
● UPDATEでも不可分性を保つためのコードを利用