Android SQLite简单语法错误
我决定为我的应用程序添加第二个表。我一直收到一个语法错误,尽管它的设置与第一个表创建字符串几乎完全相同Android SQLite简单语法错误,android,sqlite,Android,Sqlite,我决定为我的应用程序添加第二个表。我一直收到一个语法错误,尽管它的设置与第一个表创建字符串几乎完全相同 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_B
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);
很简单,您可以/不应该在创建表时使用关键字。您正在使用
limit
作为列,这是无效的,因此它会给您带来运行时错误,我建议您将其更改为类似下面这样的budget\u 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);
作为预先警告,请尝试使用limit以外的其他列名,因为“limit”实际上是一个限制返回行数的sql命令。