我正在尝试执行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);
}
我的查询有什么问题吗?
答案 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"
中使用避免空格,而是使用tableName
或table_name
。
答案 1 :(得分:0)
您需要从此行的末尾删除冒号:
COLUMN_AUDIO_ID + " TEXT,"
/*CREATE TABLE name (
COLUMN_ID + INTEGER PRIMARY KEY,
COLUMN_AUDIO_ID + TEXT
);*/
答案 2 :(得分:0)
将" TEXT,"
更改为" TEXT "
。你不应该在TEXT
之后使用逗号。