その後、使用済みフラグを立てるという処理を考える。SERIALIZABLE;で単純にトランザクションレベルを上げても対処できない。分離チェックに引っかかり、2つ目のトランザクションはアボートしてしまう。updateエラーを発生させずに処理を行うためには、更新トランザクションだけではなく参照トランザクションもブロックしなければならない。この問題はトランザクションレベルの設定では解決できない。文で行またはテーブルをロックする必要がある。文自体もブロックされる。[SQL]実装依存だったりするような予感。当たり前のことだね)。主キーとなる列の値が決まれば、おのずと他の列の値が決まる。主キー以外の列の値によって、他の列の値が決まることがない。今までは「こんな設計じゃ更新するときに大変だからテーブルを分けておこう」という視点でテーブルの分割を行っていたが、これで明確な定義のもとに設計できる。いうか、いままで勘でやってたってことか。