ドキュメントを改めて読んだ結果、 begin; lock table a in exclusive mode; select なんとか from a where なんとか; (select の結果に応じて)insert into a なんとか; commit; とかやって、同じ行ができないように することにしました。
以下実行結果。 db=# insert into a values (1,0); INSERT 18979 1 db=# insert into a values (1,0); ERROR: Cannot insert a duplicate key into unique index a_b_key db=# insert into a values (1,1); INSERT 18981 1
>>599 mail spool を NFS で共有することすら locking の問題でアレなのに、 DB なんて論外っしょ。そういうことをしたいのならば、SCSI レベルで ディスク共有する SAN の導入を考えるべき。でも、PostgreSQL や MySQL を使おうというレベルから大きく逸脱するけど。