いつの間にか外部キー制約が可能に
普段はあまり使わないSQLiteだったけど、最近ちょっとしたデータ格納手段として使っている(SQLでデータの検索ができるのが便利)。HTML5ではローカルの保存領域として使えるようになったということもあり、これからはSQLiteを使う機会が増えるのは間違いなさそう。
で、SQLiteの外部キー制約。以前は使えなかった(というか定義しても無意味だった)はずだが、3.6.19から使えるようになったとのこと(2009年10月リリースって・・・気づかなさすぎ・・・)。
FireFoxのアドオンSQLite Managerで確認してみた。サーバ上でPHPで作られたSQLiteデータベースをダウンロードして確認。
PRAGMA foreign_keys;
0
どうやらデフォルトでは対応していないらしい。そこで以下のコマンド。
PRAGMA foreign_keys=ON;
PRAGMA foreign_keys;
1
おぉ、これで使えるようになったらしい。
でも、phpinfo()で調べてみると、サーバのPHPで使用しているSQLiteのライブラリのバージョンは3.3.6となっていた。OSはCentOS5.5。標準のRPMパッケージではNGなようだ。うちで借りているVPSやら専用サーバやらは基本的に全てCentOSで、パッケージ管理はyum、標準のリポジトリに頼っている。つまり・・・使えないってことか。あ、共有サーバなら対応してるかも・・・。