0

当我向表中添加条目时,我需要知道表中元素的数量。

onPressed: () {
  final db = Provider.of<AppDb>(context);

  final habitCount = 0; /* Number of entries in the "Habits" table */
  db.into(db.habits)
    .insert(HabitsCompanion.insert(name: "Sleep", order: habitCount * 2 ));
},

我怎样才能尽可能轻松地做到这一点?

4

1 回答 1

2

您可以创建 DAO 来管理所有查询。这里我给你一个文档中使用的todos表的例子。

在此示例中,您可以通过键创建手动查询queries

@UseDao(tables: [Todos], queries: {'totalTodos': 'SELECT COUNT(*) FROM todos;'})
class TodoDao extends DatabaseAccessor<MyDatabase> with _$TodoDaoMixin  {

  final MyDatabase database;

  TodoDao(this.database) : super(database);

  Future<int> getTotalRecords() {
    return totalTodos().getSingle();
  }
}

如何使用:

Selectable<int> total = TodoDao(database).totalTodos();
total.getSingle().then((value) => print('Records: $value'));

希望你能理解这个例子。如果您有任何问题,请告诉我。

于 2021-07-24T12:40:51.733 回答