假设您有一个场景,其中有PK
,但没有auto-incremented PK
(因此您将知道您是否有一个现有记录或创建一个新记录),编写检查代码以执行insert
与update
的首选最佳实践方法是什么?
- 先查询已存在的PK
- 执行更新,如果得到约束错误,执行插入。
- 其他方式?
首选insert . . . on duplicate key update
。
基本语法是:
insert into t(col1, . . . coln)
select val1, . . . valn <---- could be constants
from whatever
on duplicate key set col1 = values(col1), col2 = values(col2), . . .;