给出以下代码 -
public void onCreate(SQLiteDatabase db) {
//creating table_to
String CREATE_TABLE_TO = "CREATE TABLE " + TABLE_TO
+ "("
+ TABLE_TO_PACKAGE_ID + " INTEGER, "
+ TABLE_TO_PACKAGE_TO + " TEXT, "
+ " PRIMARY KEY " + " ( " + TABLE_TO_PACKAGE_ID + "," + TABLE_TO_PACKAGE_TO + " ) "
+ ")";
db.execSQL(CREATE_TABLE_TO);
生成以下错误 -
5860-5860/com.example.social.gps I/SqliteDatabaseCpp﹕ sqlite returned: error code = 1, msg = near "to": syntax error, db=xxx
5860-5860/com.example.social.gps W/System.err﹕ android.database.sqlite.SQLiteException: near "to": syntax error: , while compiling: CREATE TABLE to(pack_id INTEGER, pack_to TEXT, PRIMARY KEY ( pack_id,pack_to ) )
每个LEGAL sql命令都会发生同样的情况,我已经在两个SQL服务器上测试了所有这些命令,一切正常。我从日志中取出了确切的句子并粘贴在那里,它们是合法的。
例如 -
@Override
public void onCreate(SQLiteDatabase db) {
//creating table_to
String CREATE_TABLE_TO = "CREATE TABLE " + TABLE_TO
+ "("
+ TABLE_TO_PACKAGE_ID + " INTEGER PRIMARY KEY , "
+ TABLE_TO_PACKAGE_TO + " TEXT "
+ ")";
db.execSQL(CREATE_TABLE_TO);
一代产量 -
17855-17855/com.example.social.gps I/SqliteDatabaseCpp﹕ sqlite returned: error code = 1, msg = near "to": syntax error, db=xxx
17855-17855/com.example.social.gps W/System.err﹕ android.database.sqlite.SQLiteException: near "to": syntax error: , while compiling: CREATE TABLE to(pack_id INTEGER PRIMARY KEY , pack_to TEXT )
我尝试了,
和(
)
个字符之间的各种空格,没有用过。
我还试图更改数据库名称。
解决。答案已发布。
答案 0 :(得分:0)
看起来您忘记了create语句末尾的分号。像这样:
+ ");";
答案 1 :(得分:0)
<强> 解决。 强>
答案:将"to"
表格名称更改为"to_"
解决了这个问题。 (对于我命名为"for"
的表格,将其更改为"for_"
并且有效)。根据SQLite文档,"TO"
和"FOR"
是保存的单词,显然SQLite不区分大小写。