http://en.wikipedia.org/wiki/Upsert
Insert Update stored proc on SQL Server
有没有一些聪明的方式来做这个在sqlite,我没有想过?
基本上,如果记录存在,我想更新四列中的三个,
如果不存在,我想使用第四列的默认(NUL)值插入记录。
ID是主键,因此只有一条记录到UPSERT。
(我试图避免SELECT的开销,以确定我是否需要UPDATE或INSERT显然)
建议?
假设表中有3列。ID,NAME,ROLE
原文链接:https://www.f2er.com/sqlite/198464.htmlBAD:这将使用ID = 1的新值插入或替换所有列:
@H_502_20@INSERT OR REPLACE INTO Employee (id,name,role) VALUES (1,'John Foo','CEO');BAD:这将插入或替换2列… NAME列将被设置为NULL或默认值:
@H_502_20@INSERT OR REPLACE INTO Employee (id,'code monkey');GOOD:这将更新2列。
当ID = 1存在时,NAME将不受影响。
当ID = 1不存在时,名称将为默认值(NULL)。
这将更新2列。
当ID = 1存在时,ROLE将不受影响。
当ID = 1不存在时,角色将设置为“Benchwarmer”而不是默认值。