Flutter SQFLite 一次创建多个表

Has*_*sen 4 sqlite dart flutter sqflite

我正在使用下面的代码,并想知道如何更改此数据库函数,以便它一次创建两个单独的表:

  static Future<Database> database() async {
    final dbPath = await sql.getDatabasesPath();
    return sql.openDatabase(path.join(dbPath, 'mydatabase.db'), onCreate: (db, version) {
      return db.execute('CREATE TABLE mytable(date TEXT PRIMARY KEY, value DOUBLE)');
    }, version: 1);
  }
Run Code Online (Sandbox Code Playgroud)

Has*_*sen 7

我自己设法解决了这个问题:

   static Future<Database> database() async {
    final dbPath = await sql.getDatabasesPath();
    return sql.openDatabase(path.join(dbPath, 'mydatabase.db'), onCreate: (db, version) => _createDb(db), version: 1);
  }

  static void _createDb(Database db) {
    db.execute('CREATE TABLE mytable(date TEXT PRIMARY KEY, value DOUBLE)');
    db.execute('CREATE TABLE mytableb(date TEXT PRIMARY KEY, value DOUBLE)');
  }
Run Code Online (Sandbox Code Playgroud)

它不起作用的原因是因为删除原始数据库后,我需要从冷状态重新启动模拟器才能使其生效。