我正在尝试为Android创建数据库表。 我的错误信息如下。
08-02 10:16:50.075: E/AndroidRuntime(29093): Caused by:
android.database.sqlite.SQLiteException: near "index": syntax error (code 1): , while
compiling: CREATE TABLE featured_kluster (_id INTEGER PRIMARY KEY AUTOINCREMENT, index
TEXT, term TEXT)
我的SQL查询有什么问题?
public interface TableKluster extends BaseColumns {
public String table = "featured_kluster";
public String index = "index";
public String term = "term";
public String CREATE = "CREATE TABLE " + table + " ("
+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ index + " TEXT, "
+ term + " TEXT)";
}
我不知道索引字段有什么问题..
答案 0 :(得分:11)
索引是一个SQL关键字;替换它,它应该工作。
答案 1 :(得分:1)
您不能使用不带引号的保留关键字作为标识符。理想情况下做ClaireG建议的(使用非关键字标识符),如果这不是一个选项,你可以使用keyword escape mechanisms offered by SQLite之一
使用[]
的MS样式CREATE TABLE [table] (
使用反引号/重音符号的MySQL风格
CREATE TABLE `table` (
使用双引号的ANSI样式
CREATE TABLE "table" (
答案 2 :(得分:0)
我的Android应用程序遇到了同样的问题。您不能使用“index”作为列名,不允许使用它,您必须将其更改为其他内容,例如“klusterIndex”。