【问题标题】:run time error while executing sqlite执行 sqlite 时出现运行时错误
【发布时间】:2012-04-11 03:23:05
【问题描述】:

收到错误04-12 08:38:33.943: E/Database(441): Failure 1 (near "Table": syntax error) on 0x341088 when preparing 'CREATE TABLE Table (_id INTEGER PRIMARY KEY,location_name TEXT NOT NULL,longi TEXT NOT NULL,lati TEXT NOT NULL);'. 我关注了Android 'create table if not exist' error in Eclipse,但仍然是同样的错误
我的表代码如下

public void onCreate(SQLiteDatabase db) {
                // TODO Auto-generated method stub
                db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
                        KEY_ROWID + " INTEGER PRIMARY KEY," +
                        KEY_LOCATION + " TEXT NOT NULL," +
                        KEY_LONGI + " TEXT NOT NULL," + KEY_LATI + " TEXT NOT NULL);"
                );

【问题讨论】:

  • madhumita 你的查询是错误的,首先在SQLITE BROWSER尝试它...然后检查那里
  • CREATE TABLE "samirmangroliya" (" + KEY_ROWID + " INTEGER PRIMARY KEY," + KEY_LOCATION + " TEXT NOT NULL," + KEY_LONGI + " TEXT NOT NULL," + KEY_LATI + " TEXT NOT NULL) .
  • @SamirMangroliya 谢谢..你能详细说明一下吗?
  • madhumita 它在 sqlite 浏览器中工作得很好,所以尝试在 logcat 中打印您的查询并在 sqlite 浏览器中检查它没问题~
  • @SamirMangroliya 请帮助我stackoverflow.com/questions/10186337/…

标签: android database sqlite


【解决方案1】:

TABLE 是 SQLite 中的 reserved word,因此您无法将表命名为 Table 而不对其进行转义或重命名。

【讨论】:

  • 我的表名是DATABASE_TABLE
  • 不,不是。那只是您要连接的变量。查看错误信息,它清楚地显示您的表名是TableCREATE TABLE Table ...)。
  • 不,不是,除非您完全违背了所有惯例。像这样的全大写变量用于表示常量。
  • 好吧,不管怎样,表名不是DATABASE_TABLE,因为显然发生了串联操作。
  • 愚蠢的电话让我慢了下来。正如 Marc 所说,这不是表名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 1970-01-01
  • 2022-08-08
  • 2020-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多