SQLiteDatabase.execSQLのドキュメントを読んで少し驚きました。「セミコロンで区切られた複数のステートメントはサポートされていません」と書かれています。
以前に読んでも驚かなかったでしょうが、私のアプリケーションでは次のようなコマンドを使用していました。
private static final String CREATE_TABLE =
"create table "
+ TABLENAME + "("
+ COLUMN_ID + " integer primary key autoincrement, "
+ COLUMN_CODE + " text not null,"
+ COLUMN_NAME + " text not null,"
+ COLUMN_STOCK + " integer,"
+ COLUMN_PRICE + " real,"
+ COLUMN_LISTPRICE + " real"
+ ");"
+ "create index "
+ TABLENAME + "_idx on " + TABLENAME
+ "(" + COLUMN_NAME + ", "
+ COLUMN_STOCK + ", "
+ COLUMN_PRICE
+ ");";
...
database.execSQL(CREATE_TABLE);
エラーや例外は見られませんでした (または、気づきませんでした)。ステートメントのインデックスが作成されていないということですか? それともドキュメントが間違っていますか?