Mysql "insert . on duplicate key update "跟"replace into"

Mysql "insert ... on duplicate key update "和"replace into"

1. INSERT ... ON DUPLICATE KEY UPDATE

http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html

insert into tableName values (1,  "testvalue", now()) on duplicate key update value=values(value), gmt_modify=values(gmt_modify);

前置条件:

      1. 一定要有主键,或者唯一索引

      2. 确认需求是,欲插入的记录在主键存在的情况下,需要做update, 否则执行insert.

 

语法解释:

      该语法可能要执行的动作是insert/update。

      如果主键已存在,执行update,否则执行insert。

 

说明:

      1. update 可更新多个字段

      2. 更新值可以从values中获取,也可自定义。

 

2. REPLACE

http://dev.mysql.com/doc/refman/5.6/en/replace.html

 

replace有多种用法,我只介绍replace into。

replace into tableName(id,value, gmt_modify) values(1, "testvalue", now());

前置条件:

      1. 一定要有主键,或者唯一索引

 

语法解释:

      该语法可能要执行的动作是insert/delete&insert。

      如果主键已存在,先删后增,否则执行insert。