Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite简单语法错误_Android_Sqlite - Fatal编程技术网

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命令。