>>476
こういうケースで問題がある。

table t: (a integer, b integer)
user1がa=3のレコードを、user2がa=4のレコードを同時に作成しようとする。
本来なら、別のデータを登録する処理なので、両立すべき。

user1: set tx_isolation = serializable;
user1: begin;
user1: select count(*) from t where a=3; -> データがないことを確認できる
user2: set tx_isolation = serializable;
user2: begin;
user2: select count(*) from t where a=4; -> データがないことを確認できる
user1: insert into t values(3, 300); -> 処理がブロックする
user2: insert into t values(4, 400); -> エラー発生(Deadlock found)、user1のブロック解除
user2: rollback;
user1: commit;

結果として、user2はデータを登録できない。