3

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

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

4

3 回答 3

11

索引是一个 SQL 关键字;更换它,它应该可以工作。

于 2013-08-02T14:29:07.753 回答
1

您不能使用未加引号的保留关键字作为标识符。理想情况下,按照 ClaireG 的建议(使用非关键字标识符),如果这不是一个选项,您可以使用SQLite 提供的关键字转义机制之一

使用 [] 的 MS 样式

CREATE TABLE [table] (

使用反引号/重音符号的 MySQL 样式

CREATE TABLE `table` (

使用双引号的 ANSI 样式

CREATE TABLE "table" (
于 2013-08-02T14:35:03.197 回答
0

我在我的 Android 应用程序上遇到了同样的问题。您不能使用“index”作为列名,这是不允许的,您必须将其更改为其他名称,例如“klusterIndex”。

于 2016-01-26T21:15:12.697 回答