首页 > 解决方案 > SELECT MAX(id) 的结果为空

问题描述

在打开数据库时,我在 Expense 表中插入了 5 条记录。然后我一一删除了所有 5 条记录。在我插入新条目之前,我检查最大插入 id。由于某种原因,它是空的。怎么了?

var result = await db.rawQuery("SELECT MAX(id) as last_inserted_id FROM Expense");
final maxID = result.first["last_inserted_id"];
print('maxID:$maxID'); //maxID:null

标签: sqlitedart

解决方案


如果表中没有行,则没有定义最大值。您应该做的是查找表的 ID 序列号以找出下一个 ID 将是什么。该信息通常存储在数据库的某个元表中。

SELECT seq FROM SQLITE_SEQUENCE WHERE name='Expense';


推荐阅读