SQLiteの連番生成
最近は結構SQLiteを使うことが多い。PHP5という前提はあるけれど(もちろん条件がそろえばPHP4でも大丈夫なんだけど)。レンタルサーバを使う際に、MySQLの場合はデータベースの個数に制限がある場合がほとんどだけど、SQLiteなら何個データベースを作ってもOKだから気兼ねなく使える。
でもいまだに慣れないところもある。バージョン2系と3系の違いがあるのかもしれないけれど(いろいろ試したわけではないのでよくわからない)、バージョン2で連番生成させたいときの条件が難しかった。単にデータベースの操作ツールがsqliteManagerだったからわかりにくかったのかもしれないけれど。連番生成のための条件をメモしておく。
- 主キーであること
- データ型がINTEGER
- サイズを指定しない
- NULL許可
このカラム設定にしておいて、データのINSERT時に主キーをNULLで登録すればOK。
PHP4系だと、どうしてもSQLite2系を使わないといけない場合があって面倒だ。PHP5系ならSQLite3系で、管理ツールにFireFoxのプラグインの「SQLite Manager」を使って問題なくいろいろな操作ができるんだけど(しかし管理ツールの名前が同じってのは区別しにくい)。