TRAE 生成的代码里有隐藏坑:我的一次 SQL join 教训

说出来不怕丢人,这是真事。

现象:一个统计接口返回的数“看起来对”,总和也对得上,但我抽样核对时发现,某些用户的记录数明显偏少。

原因:TRAE 帮我写的 join 漏了一个关联条件,导致一部分本该匹配上的行被丢掉了。更阴的是——因为主表数据多,丢掉的恰好是少数边缘情况,所以总数肉眼看不出异常。

我现在加的校验步骤:

  1. 先跑一条 count 对照:同样的过滤条件,分别用 join 和用子查询算,两个数必须一致,不一致就说明 join 有漏。
  2. 让 TRAE 写 SQL 时,强制它先列出“每张表靠哪个字段关联、为什么”,我确认了它才写。
  3. 边缘样本必抽:挑数据最少的那类,手动数一遍。

教训就一句:AI 写的聚合 SQL,总数对 ≠ 逻辑对。


标签:技巧分享