Q&A
Q&AHow can write skew occur under snapshot or repeatable-read isolation?
Two transactions can read the same invariant and update disjoint rows, so row-level conflicts do not detect the violation.
Read the concise answer
If each transaction sees a snapshot where another row satisfies a rule, they may update different rows and both commit, leaving the combined invariant false. Use a constraint, lock a shared coordination row, or use serializable isolation with whole-transaction retry. Exact Repeatable Read semantics differ by engine.