我的sqlite查询错了吗?

时间:2013-08-02 14:27:21

标签: android sql sqlite

我正在尝试为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)";
    }

我不知道索引字段有什么问题..

3 个答案:

答案 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”。