Amy 原创整理|资料核验:2026-11-07
SQLite 的 INSERT 遇到指定的唯一约束冲突时,可改走 DO UPDATE。更新表达式里,表原有的列值来自当前记录,excluded.列名则代表这一行原本打算插入的新值。UPSERT 针对唯一约束冲突,不能用来一并处理所有校验失败。
教学示例:库存表按商品编号唯一,原库存 8,本次到货记录数量 3。若程序传入的是增量,更新可用 stock.qty + excluded.qty 得到 11;若传入的是盘点后的总数,才考虑用新值覆盖。写 SQL 前先确定输入字段的业务含义。