摘要 |
Transient duplicate key violations of unique key constraints are handled during row updates. Row changes are buffered until a point is reached that those changes are safe to execute. Row changes are effectively reordered to avoid constraint violations during execution of updates. In response to receiving a constraint key violation from a server after an attempted update, a client locally stores a record containing information regarding the failed update. Later, in response to the lack of receipt of an error in response to another update to the same column of the same table, the client uses the information in this record to instruct the server to attempt to repeat a failed update that previously attempted to change the value of a row to a value that was present in a uniqueness-constrained column at the time of the failure, but is no longer present due to the successful update. |