最近は開発よりもマネージメントの仕事が多いのですが、久しぶりに技術的な話で書くネタができたので書いておきます。 SQLite3 のトランザクションは他のデータベースと少し異なり特殊なので、色々とはまりがちですが、その内容についてまとめておきます。 Rails での話も少し書いておきます。 SQLite3 の分離レベル SQL の分離レベルは、 Wikipedia の記事にあるように、 Read Uncommitted, Read Committed, Repeatable Read, Serializable の4種類があります。 SQLite3 では、 Read Uncommitted になる例外もありますが、基本的には常に Serializable です。 後述するトランザクションのモードとして、 Deferred, Immediate, Exclusive が指定できますが、それとは