You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

插入并删除Expense表所有记录后,查询MAX(id)返回null的原因

为什么查询MAX(id)会返回null?

这事儿我太熟了!其实核心原因特别直白:

  • 当你的Expense表中没有任何记录时,SQL的MAX()聚合函数就会返回null——因为它根本找不到任何数据来计算最大值,这是SQL的标准行为,和你之前有没有插入、删除过记录完全没关系,只看当前表的实际状态。
  • 你之前插入5条记录又逐条删掉,现在表已经是空的了,所以执行SELECT MAX(id) as last_inserted_id FROM Expense自然就得到null啦。
怎么解决这个问题?

如果不想拿到null,可以用这两种方式处理:

  • 用SQL的COALESCE()函数把null转换成你需要的默认值(比如0),修改后的查询语句如下:
    SELECT COALESCE(MAX(id), 0) as last_inserted_id FROM Expense
    
  • 在代码里做判断,如果maxID是null,就手动赋值为0,比如:
    final maxID = result.first["last_inserted_id"] ?? 0;
    

内容的提问来源于stack exchange,提问作者rozerro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 10:37:33