gpt4 book ai didi

database - 如何在 flutter 中从插入到 sqflite 数据库中返回 id

转载 作者:行者123 更新时间:2023-12-05 08:40:11 26 4
gpt4 key购买 nike

我有 2 个数据库。一个用于文件夹,一个用于笔记。文件夹数据库包含一个标题和一个 id 列表的 json 字符串id 应该代表第二个笔记数据库。基本上文件夹需要包含一个笔记列表,这是迄今为止我发现的最好的方法。我的问题是,当我创建一个新笔记并将其插入数据库时​​,我不确定如何取回新笔记的 ID。

如果我在创建笔记时设置了 id,那么所有笔记都将具有相同的 id。如果我不设置 id,那么调用 note.id 将返回 null。根据我的创建函数,Note 的 id 应该自行设置(id INTEGER PRIMARY KEY AUTOINCREMENT)

我的想法是,在创建新的 Note 时,我会以某种方式返回 int id,以便我可以轻松地将它插入到文件夹中。这是我目前所拥有的。

void addNewNote(Note note) async {
var db_connection = await db;
String query =
'INSERT INTO Note(title, content, date_created, date_last_edited) VALUES(\'${note.title}\', \'${note.content}\', \'${note.date_created}\', \'${note.date_last_edited}\')';
await db_connection.transaction((transaction) async {
return await transaction.rawInsert(query);
});
}

最佳答案

插入的 id 也是从 db.insert() 辅助方法返回的,作为签名

Future<int> insert(String table, Map<String, dynamic> values, 
{String nullColumnHack, ConflictAlgorithm conflictAlgorithm})

描述。示例:

final db = await getDb();
final insertedId = await db.insert(
todosTableName,
todo.toMap(),
conflictAlgorithm: ConflictAlgorithm.replace,
);
print('insertedId: $insertedId');

关于database - 如何在 flutter 中从插入到 sqflite 数据库中返回 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918662/

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