Android SQlite数据库语法错误

时间:2014-07-30 17:33:41

标签: android sqlite

给出以下代码 -

  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 )

我尝试了,( )个字符之间的各种空格,没有用过。 我还试图更改数据库名称。

解决。答案已发布。

2 个答案:

答案 0 :(得分:0)

看起来您忘记了create语句末尾的分号。像这样:

+ ");";

答案 1 :(得分:0)

<强> 解决。

答案:"to"表格名称更改为"to_"解决了这个问题。 (对于我命名为"for"的表格,将其更改为"for_"并且有效)。根据SQLite文档,"TO""FOR"是保存的单词,显然SQLite不区分大小写。