【问题标题】:SQLiteLog( 8646): (1) table tempsettings has no column named userSQLiteLog(8646): (1) 表 tempsettings 没有名为 user 的列
【发布时间】:2019-08-23 14:47:44
【问题描述】:

我正在学习如何在 Flutter 应用程序中升级数据库,看起来很简单,但是执行 INSERT 时出现此错误:

E/SQLiteLog(9107): (1) 表 tempsettings 没有名为 user 的列 I/flutter(9107):DatabaseException(表 tempsettings 没有列 命名用户(代码 1 SQLITE_ERROR):,编译时:INSERT INTO tempsettings('id', 'user', 'company', 'url') SELECT 'id', 'user', 'company', 'url' FROM settings) E/SQLiteLog(9107): (1) no such 列:用户 I/flutter(9107):DatabaseException(没有这样的列:用户 (代码 1 SQLITE_ERROR):,编译时:INSERT INTO settings('id', 'user', 'company', 'url', 'theme') SELECT id, user, company, url, 1 来自临时设置)

    await db
        .execute("CREATE TABLE tempsettings("
            "'id' INTEGER "
            "'user' TEXT,"
            "'company' TEXT,"
            "'url' TEXT)")
        .catchError((error) => print(error.toString()));
    await db.execute(
        "INSERT INTO tempsettings('id', 'user', 'company', 'url') SELECT 'id', 'user', 'company', 'url' FROM settings")
        .catchError((error) => print(error.toString()));

有人可以帮我如何插入吗?

谢谢。

【问题讨论】:

  • 如果你删除表名周围的单引号会发生什么,即await db.execute("""CREATE TABLE tempsettings( id INTEGER, user TEXT, company TEXT, url TEXT)""") 还要确保你没有先创建表然后通过添加新列来编辑代码,你需要卸载应用程序首先

标签: flutter sqflite


【解决方案1】:

创建 id 列后缺少逗号

await db.execute("CREATE TABLE tempsettings("
            "id INTEGER ", //this comma was missing
            "user TEXT,"
            "company TEXT,"
            "url TEXT)")
        .catchError((error) => print(error.toString()));

【讨论】:

  • 谢谢,在这之后我发现今天对我来说不是个好日子! ehuehuehueuehu
猜你喜欢
  • 2015-06-07
  • 1970-01-01
  • 2018-11-12
  • 2015-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多