【发布时间】:2019-06-16 09:17:56
【问题描述】:
我正在使用使用 SQLite 数据库的颤振构建和应用程序。我使用这段代码创建了第一个表:
void _createDb(Database db, int newVersion) async {
await db.execute('''CREATE TABLE cards (id_card INTEGER PRIMARY KEY,
color TEXT, type TEXT, rarity TEXT, name TEXT UNIQUE, goldCost INTEGER,
manaCost INTEGER, armor INTEGER, attack INTEGER, health INTEGER, description TEXT)''');
}
表已创建,我可以毫无问题地访问它。
不幸的是,我不能包含超过 1 个我刚刚创建的表。我尝试在同一方法中添加另一个 SQL CREATE TABLE 子句,并在下一行使用不同的 SQL 子句重复方法 db.execute。
我正在模仿本教程中的代码:https://www.youtube.com/watch?v=xke5_yGL0uk
如何在同一个数据库中添加另一个表?
【问题讨论】:
-
如果您能承受丢失数据的后果,请卸载该应用程序并在您尝试时使用包含的额外表格运行。这将删除数据库,因此 createDB 将运行(它只在创建数据库时运行一次)。
-
您收到什么错误信息?您是否为每个表传递不同的表名?
-
我尝试卸载应用程序并清除本地存储和缓存。我现在无法访问 AS,但是 IIRC 我尝试执行
CREATE TABLE IF EXISTS decks (id_deck INTEGER PRIMARY KEY, nameDeck TEXT),当我将数据插入其中时,它显示“表面板没有列‘nameDeck’” -
你应该使用
CREATE TABLE IF NOT EXISTS decks (id_deck INTEGER PRIMARY KEY, nameDeck TEXT)(注意NOT添加)。再次,删除应用程序的数据/卸载应用程序,然后重试。
标签: database flutter sqlite dart sqflite