⚠️ 只会用聊天型大模型、最近开始跟 AI 新工具的人,最容易看错的不是功能多不多,而是把“更严格”误会成“更麻烦”。你刚刷到 sqlite-utils 4.0rc3(一个管 SQLite 数据库的小工具)[C001],本来想划走,又怕错过重点;真看错了,代价往往不是多看一次报错,而是数据已经写歪了,你还以为自己成功了。会当场报错的 sqlite-utils,才配写生产脚本[C002]。

一条更新值不值得看,不看它列了多少功能,先看它会不会改掉你下一步的判断。4.0rc3 在 2026-07-05 发布,这更像 4.0 上线前专门收口的一次定规矩,不是随手补两处小毛病[C003]。

最关键的变化很白话:4.0rc2 已经把 db.query() 限定成只给“会返回结果”的语句用;如果你拿它去做不会返回结果的写操作,现在会直接抛 ValueError(用法不对就立刻报错),而且回滚,不让错结果留在库里;真正改数据,要改用 db.execute()[C004]。升级说明还直接点名,3.x 那种 db.query("update ...") 看起来跑完、其实没真正改掉的旧写法,4.0 明确要求改用 db.execute()[C005]。

所以这条更适合已经想把小工具写进正式脚本的人先存下。你临时玩两下,未必立刻觉得它好;但只要开始碰数据库,我会先站在“宁可当场报错,也别让错数据悄悄留下”这一边。等你第一次让聊天模型帮你写数据库操作时,再回来对照。

🤔 你现在最想先避开的,是哪一个坑?