【问题标题】:Why does my second sqlite table throw an Exception?为什么我的第二个 sqlite 表会抛出异常?
【发布时间】:2013-03-08 08:03:00
【问题描述】:

我有一个创建表的 DatabaseHelper 类。 第一个表(记录)工作正常,但第二个表在我尝试使用它时抛出异常(插入/选择...)。

这是我来自 DatabaseHelper 的代码:

 public void onCreate(SQLiteDatabase db) {

    String createTable="CREATE TABLE recordings" +
            "(_id INTEGER PRIMARY KEY AUTOINCREMENT," +
            " name VARCHAR(255) NOT NULL," +
            " datestart VARCHAR(255) NOT NULL" +
            ")";

    String createTable2="CREATE TABLE recording_image" +
            "(_id INTEGER PRIMARY KEY AUTOINCREMENT," +
            "imageurl VARCHAR(255) NOT NULL," +
            "imagetime INTEGER NOT NULL," +
            "prot_id INTEGER NOT NULL," +
            "FOREIGN KEY(prot_id) REFERENCES recordings(_id) ON DELETE CASCADE" +
            ")";

    db.execSQL(createTable);    
    db.execSQL(createTable2);
}

例外是:

没有这样的表:recording_image。

什么可能导致这个问题?

【问题讨论】:

  • 你后来加了第二张表吗。如果是这样,请清除您的数据或卸载您的应用。
  • 你在哪里查询表?
  • 从第二个表中删除引用,稍后您使用引用更改第二个表
  • @Hoan Nguyen:是的,我后来添加了它,现在尝试重新安装该应用程序。异常不再存在,但出现其他问题。我会先尝试自己修复它们。
  • @Vishal Vijay:为什么我必须稍后更改表格并且不能从头开始保留参考

标签: java android eclipse sqlite


【解决方案1】:

可以,尝试清空应用的数据,也可以查看db的版本,如果你要创建的db版本高于手机当前db你要删除再创建再次所有的数据库。

请看:SQLiteOpenHelper

希望对你有帮助:)

【讨论】:

    【解决方案2】:

    问题解决了。只需重新安装应用程序或更改数据库的版本号即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多