SQLite 3.53.0 リリース — ALTER TABLE制約追加・削除、json_array_insert()、CLI大幅強化まとめ
「ALTER TABLEで制約変更できない問題」はSQLiteユーザーなら誰もが一度は悩む壁。3.53.0でそれが解消されたのは地味だが実務直結のアップデート。CLI改善をスマホのClaude CodeでWasm化したというおまけエピソードも秀逸。
SQLite 3.53.0 がついにリリース — 盛りだくさんの改善点を整理する SQLiteの最新版 3.53.0 が2026年4月にリリースされた。直前の 3.52.0 が取り下げ になったため、その分も含めた大型リリースとなっている。地味ながらも毎日のように使われるデータベースだけに、今回の変更は「ずっと欲しかった」機能が揃っていて、現場エンジニアにとっては嬉しいアップデートだ。 主な新機能・改善点 1. ALTER TABLE で NOT NULL / CHECK 制約が追加・削除できるようになった これは長年の悩みが解消された変更だ。これまでSQLiteでは ALTER TABLE の制約変更が極めて限定的で、カラムの制約を変えるには「テーブルを作り直す」しかなかった。Simon Willison 自身も、自分のツール sqlite-utils の transform() メソッドを使って迂回していたと述べている。 `sql -- 例: NOT NULL 制約を追加(概念例) ALTER TABLE users ALTER COLUMN email SET NOT NULL; -- CHECK 制約の追加 ALTER TABLE orders ADD CHECK (amount > 0); ` スキーマを段階的に育てていくプロジェクトでは、この機能だけでもアップデートする価値がある。 2. json_array_insert() 関数が追加 json_array_insert() とその jsonb 等価関数が新たに加わった。既存の json_array_append() が末尾追加だったのに対し、任意のインデックスへの挿入が可能になる。 `sql SELECT json_array_insert('1,2,4]', '$[2]', 3); -- => [1,2,3,4] ` JSONカラムを多用するアプリケーションでは、SQL層でのデータ加工の幅が広がる。 3. CLI の大幅改善 — Query Results Formatter 今回のリリースで個人的に最も面白いと感じたのが CLI の結果フォーマット改善だ。新ライブラリ [Query Results Formatter を採用しており、ターミナルでのクエリ結果が格段に読みやすくなっている。 さらに Simon Willison はこのライブラリを スマートフォン上の Claude Code を使って WebAssembly にコンパイルし、ブラウザ上で試せるプレイグラウンドを作ったと紹介している。「スマホのClaude Codeでwasmビルド」という事例は、AIコーディングツールの実用度を端的に示す話として興味深い。 まとめ・所感 今回の 3.53.0 は、「SQLiteは機能が少ない」という先入観を少しずつ塗り替えるリリースだと感じる。 - ALTER TABLE の制約変更 → スキーマ管理が大幅に楽に - json_array_insert() → JSON操作のSQL完結度が向上 - CLI + Query Results Formatter → 開発・デバッグ体験の改善 SQLiteは組み込み・ローカルファーストアプリ・テスト環境など幅広い用途で使われているだけに、こうした細かい改善の積み重ねは現場への影響が大きい。sqlite3 --version で確認してみて、古いままなら今すぐアップデートを検討したい。元記事(Simon Willison のブログ)には各機能の詳細リンクも掲載されているので合わせて読んでほしい。