【发布时间】: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)""")还要确保你没有先创建表然后通过添加新列来编辑代码,你需要卸载应用程序首先