CONFLICT SQL · 约束
ON CONFLICT 意思是「撞车了怎么办」:插入撞上唯一约束时,改为更新原行(俗称 UPSERT)或干脆跳过。
怎么用
INSERT INTO 表 (...) VALUES (...) ON CONFLICT(列) DO UPDATE SET ...;
小例子
INSERT INTO 用户 (id, 名字) VALUES (1, '小明') ON CONFLICT(id) DO UPDATE SET 名字 = excluded.名字;
效果
id=1 已存在时不报错,改为把它的名字更新成 小明。
提醒:DO NOTHING 表示干脆跳过这条也不报错;excluded.名字 指的是「这次想插进来却撞车」的那个值。
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← SQL全部词条