尝试使用SQLite查询在android中创建表时出现语法错误

时间:2015-12-27 14:27:54

标签: android database string sqlite syntax-error

我正在尝试执行String查询,但它给出了一个语法错误,如下所示:

  

android.database.sqlite.SQLiteException:near")":语法错误(代码   1):,编译时:CREATE TABLE Enter(_id INTEGER PRIMARY   KEY,_audio_id TEXT,)

我已使用https://developer.android.com/training/basics/data-storage/databases.html多次检查并且匹配,但我不确定为什么它不起作用。我的查询如下所示:

public void CreatePlaylist(String name){
        SQLiteDatabase db=getWritableDatabase();
        String query="CREATE TABLE "+ name +" (" +
                COLUMN_ID + " INTEGER PRIMARY KEY," +
                COLUMN_AUDIO_ID + " TEXT,"+
                " )";
                System.out.println("DB "+db);
        db.execSQL(query);
    }

我的查询有什么问题吗?

3 个答案:

答案 0 :(得分:0)

删除最后一个逗号:

public void CreatePlaylist(String name){
        SQLiteDatabase db=getWritableDatabase();
        String query="CREATE TABLE "+ name +" (" +
                COLUMN_ID + " INTEGER PRIMARY KEY," +
                COLUMN_AUDIO_ID + " TEXT"+              -- here
                " )";
                System.out.println("DB "+db);
        db.execSQL(query);
    }

修改

表名可以包含空格,但您需要使用"引用标识符。好的做法是在表/列名"table name"中使用避免空格,而是使用tableNametable_name

答案 1 :(得分:0)

您需要从此行的末尾删除冒号:

COLUMN_AUDIO_ID + " TEXT,"

/*CREATE TABLE name ( 
    COLUMN_ID + INTEGER PRIMARY KEY, 
    COLUMN_AUDIO_ID + TEXT 
);*/

答案 2 :(得分:0)

" TEXT,"更改为" TEXT "。你不应该在TEXT之后使用逗号。