ボクココ

個人開発に関するテックブログ

SQLiteOpenHelper の execSQL で2文まとめて実行してはいけない


久々のAndroidエントリー。


SQLiteOpenHelper#execSQL(str) は strのSQLをそのまま実行してくれる便利なメソッドだが、これに create table や alter table add column などをまとめて ; でつなげて実行すると、テーブルやカラムは出来上がるが、プログラムからその追加したカラムを呼びにいけないというなんとも謎の現象に見舞われる。


本当の原因はAndroidのソースを見に行かないとわからないが、とりあえずexecSQLを実行するときはSQL1文、という決まりを作ればまず問題は起きないだろう。