gpt4 book ai didi

android - 为什么 SQLITE 上的 AUTOINCRMENT 不为 null? | sqlite flutter中的自动增量ID

转载 作者:行者123 更新时间:2023-12-03 08:55:21 24 4
gpt4 key购买 nike

我在 SQFLITE 的 onCreate 方法上添加了这个。我需要生成一个自动增量 id。我打印了 id 但该值为空。如何使用sqflite添加自动增量id?

   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)""");
}

我这样存储数据。我没有将 id 添加到值中。我没有将值传递给 id。

  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("")));
}

最佳答案

您需要确保 id 没有添加到 toJson() 函数中的 map 中:

在官方文档中是这样处理的:

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

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

return map;
}

关于android - 为什么 SQLITE 上的 AUTOINCRMENT 不为 null? | sqlite flutter中的自动增量ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55887052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com