我正在构建一个使用SQLite数据库的flutter应用程序。我已经使用这段代码创建了第一个表:
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)''');
}
表被创建,我可以访问它没有问题。
不幸的是,我不能包含一个以上的表,我刚刚创建。我试图添加另一个SQL CREATE TABLE子句在同一个方法,并重复方法db.execute
与不同的SQL子句只是在下一行。
我正在模仿本教程中的代码:https://www.youtube.com/watch?v=xke5_yGL0uk
如何在同一个数据库中添加另一个表?
7条答案
按热度按时间lzfw57am1#
例如,您可以只合并多个db.execute调用
px9o7tmv2#
是,你可以的
但为了加快处理速度,假设我们有10个表,您可以这样使用批处理
cu6pst1q3#
可以使用包含DB脚本的.sql文件。
首先,将脚本文件添加到资源。
然后,导入以下包:
最后,使用以下代码
mrphzbgm4#
更改
DB
文件的名称。这将“重置”您的DB,并且创建将生效。例如:
flmtquvp5#
在
openDatabase(path, onCreate, version)
中,使用另一个可选参数"onUpgrade"
,并定义删除和再次创建表脚本,同时将参数版本升级(增加)一个。-----程式码片段------
注意:每次创建或更改某些表的结构时,都必须在
openDatabase()
方法中增加数据库版本,以便调用升级,否则不会调用。tvz2xvvm6#
如果不查看您的
openDatabase
调用以及该数据库以前是否存在,很难说。我的猜测之一是您仍在使用相同的数据库版本。一旦调用了onCreate
,就不会再调用它。您应该尝试提升数据库版本,并在onUpgrade
上添加新表uurity8g7#
可以使用db.execute在单个数据库下创建多个表。