Почему AUTOINCREMENT не имеет значения null на SQFLITE? - PullRequest
0 голосов
/ 28 апреля 2019

Я добавил это в метод onCreate в SQFLITE.Мне нужно создать идентификатор автоинкремента.Я напечатал идентификатор, но значение равно нулю.Как добавить идентификатор автоинкремента с помощью sqflite?

   await db.execute(
            """CREATE TABLE submitRequestTable(id INTEGER PRIMARY KEY AUTOINCREMENT,equipmentId INTEGER, woDescriptionId INTEGER, details STRING, priorityId INTEGER,
            workTypeId INTEGER, sourceId INTEGER, filename STRING, isOffline INTEGER, systemDate STRING, username STRING, subItemId INTEGER, status STRING)""");
      }

Я храню данные, как это.Я не добавил идентификатор к значению.я не передал значение идентификатору.

  storeSubmitRequest(
      BuildContext context,
      int equipmentId,
      int woDescriptionId,
      String details,
      int priorityId,
      int workTypeId,
      int sourceId,
      String filename,
      int isOffline,
      String systemDate,
      String username,
      int subItemId,
      String status) async {
    var db = await db1;
    Batch batch = db.batch();
    var data = SubmitRequestModel(
        equipmentId: equipmentId,
        woDescriptionId: woDescriptionId,
        details: details,
        priorityId: priorityId,
        workTypeId: workTypeId,
        sourceId: sourceId,
        filename: filename,
        isOffline: isOffline,
        systemDate: systemDate,
        username: username,
        subItemId: subItemId,
        status: status);
    batch.insert(
      'submitRequestTable',
      data.toJson(),
      // conflictAlgorithm: ConflictAlgorithm.replace,
    );
    await batch.commit();
    Navigator.push(
        context, MaterialPageRoute(builder: (context) => ListPage("")));
  }

1 Ответ

0 голосов
/ 17 июня 2019

Вы должны убедиться, что идентификатор не добавлен на карту в вашей функции toJson():

В официальной документации это обрабатывается так:

Map<String, dynamic> toMap() {
  var map = <String, dynamic>{
    columnTitle: title,
    columnDone: done == true ? 1 : 0
  };

  if (id != null) map['id'] = id;

  return map;
}
...