0

アプリに 2 つ目のテーブルを追加することにしました。最初のテーブル作成文字列とほぼ同じ設定であるにもかかわらず、構文エラーが発生し続けます。

private static final String BUDGET_TABLE = "budgets";
private static final String KEY_ROW_ID_BUDGET = "_id";
private static final String KEY_BUDGET_LIMIT = "limit";
private static final String KEY_BUDGET_CURRENT_AMOUNT = "current_amount";

この文字列は、'limit' 付近で構文エラーをスローします

private static final String BUDGET_CREATE =
        "create table "+ BUDGET_TABLE +" ( "+ KEY_ROW_ID_BUDGET+" integer primary key autoincrement, "
        + KEY_BUDGET_LIMIT+" text not null, "+ KEY_BUDGET_CURRENT_AMOUNT+" text);";


db.execSQL(BUDGET_CREATE);
4

1 に答える 1

2

簡単です。テーブルの作成中にキーワードを使用できます/使用しないでください。無効な列として使用limitしているため、実行時エラーが発生していますbudget_limit。以下のように変更してから、再試行することをお勧めします。

private static final String BUDGET_TABLE = "budgets";
private static final String KEY_ROW_ID_BUDGET = "_id";
private static final String KEY_BUDGET_LIMIT = "budget_limit";
private static final String KEY_BUDGET_CURRENT_AMOUNT = "current_amount";

private static final String BUDGET_CREATE =
        "create table "+ BUDGET_TABLE +" ( "+ KEY_ROW_ID_BUDGET+" integer primary key autoincrement, "
        + KEY_BUDGET_LIMIT+" text not null, "+ KEY_BUDGET_CURRENT_AMOUNT+" text);";


db.execSQL(BUDGET_CREATE);
于 2012-11-06T03:05:25.183 に答える