⚠️ 这条是写给那种只会用聊天型大模型、最近才开始跟工具更新的人。你刚刷到 sqlite-utils 4.1,本来想顺手划走,但又怕自己错过真正会影响下一步判断的点。这里最容易做错的,不是“要不要学”,而是以为这次只是多了点小功能,结果把真正会毁数据的坑看漏了。[C001]
我现在会直接把结论放前面:ZIP 码这类字段,最怕被自动推断成整数。[C002] 因为你以为它只是“成功导进去了”,其实意思已经变了。像 01234 这种值,一旦前导 0 被吞掉,后面查整列、对数据、返工,才是最费时间的地方。[C005]
这也是我觉得 4.1 值得看的原因:它像是在承认一件事,智能导入不一定更省心,安安静静导入成功,也可能安安静静把数据改坏。发布说明里专门加了 --type column-name type,意思很白:你可以手动指定“这一列按什么类型存”,别让系统自己猜;而官方举的就是 ZIP 码这种“看着像数字,其实该按文本存”的列。[C003]
命令行文档也没绕,直接给了 --type zipcode text 这个例子。这里的 text 就是“文本”,意思是这列别按数字处理;还给了 --no-detect-types,白话就是把自动识别类型先关掉。[C004] 连官方都把“覆写自动判断”写得这么直白,你就该知道,这次重点不是它变聪明了,而是它终于把“别乱猜”这件事摆上台面。
所以一条更新值不值得看,不看它列了多少功能,先看它会不会改掉你下一步的判断。对普通人来说,这次真正该记住的不是命令本身,而是一个检查动作:只要你手里的列“看着像数字,其实一个 0 都不能少”,比如邮编、学号、门牌号、地区编码、订单前缀,就先停 10 秒,看能不能手动指定类型。
这条更适合先存一下,不适合当热闹刷过去。尤其你最近要把表格导进数据库时,先检查类型,再看新功能多不多;因为 4.1 这次承认得很明白:智能导入,真的可能会毁数据。
🤔 你现在最想先避开的,是哪一个坑?