sqlite - 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
解决方案
如果表中没有行,则没有定义最大值。您应该做的是查找表的 ID 序列号以找出下一个 ID 将是什么。该信息通常存储在数据库的某个元表中。
SELECT seq FROM SQLITE_SEQUENCE WHERE name='Expense';
推荐阅读
- javascript - 使用 JSON 和 JQuery 合并和分组表
- python-3.x - AsyncSSH 创建 SFTP 客户端错误 - 太多值无法解压
- java - Sparql 查询获取超时异常
- excel - 在 excel 单元格的渲染/显示值上使用公式
- android - 如何使用改造和.net核心从android上传几张图片?
- angular - 模板解析错误:无法绑定到“任务”,因为它不是“任务列表”的已知属性
- shell - 什么shell命令将单词分成变量?
- python - Plotly中同一X轴和Y轴上的多个条形图
- grails - 元类在测试期间不替换实例方法?
- php - 在 PHP 类的静态变量中传递函数