确定是否在MySQL中INSERT或UPDATE;首先查询还是依赖约束错误?

时间:2014-05-17 16:54:18

标签: mysql sql insert-update

假设您的情况中有PK,而不是auto-incremented PK(因此您会知道您是否有现有记录或创建新记录),最佳选择是什么?练习对支票进行编码以对insertupdate进行编码的方式。

  1. 首先查询现有的PK。
  2. 执行更新,如果遇到约束错误,请执行插入操作。
  3. 其他一些方式?

1 个答案:

答案 0 :(得分:4)

首选方式是insert . . . on duplicate key update。记录在案here

基本语法是:

insert into t(col1, . . . coln)
    select val1, . . . valn  <---- could be constants
    from whatever
    on duplicate key set col1 = values(col1), col2 = values(col2), . . .;