mysql存在插入,不存在更新操作
insert into table_name (key1,key2,key3)VALUEs(?,?,?) ON DUPLICATE KEY
UPDATE key1 = VALUES(value1),key2=VALUES(value2),updatetime = CURRENT_TIMESTAMP;
对比直接插入
inert into table_name(key1,key2,key3)VALUES(?,?,?)
多了ON DUPLICATE KEY UPDATE key1=VALUES(value1);
建立数据表的时候需要用关键字UNIQUE指定唯一字段,
比如设置id_only为唯一字段
1 | sql复制代码CREATE TABLE `get_query_shop` ( |
需要更新那些字段就添加在ON DUPLICATE KEY UPDATE后面,可以更新一个或多个字段
例如更新orderTime和cid1Name:
1 | sql复制代码insert into get_query_shop (shopId,cid1Name,cid2Name,id_only,orderTime)VALUEs |
需要注意的是:这种插入法,数据的ID字段不会连续,并且直接inster插入会出错,因为有唯一字段,一旦出现重复数据将无法插入
如果建表的时候忘记设置,或者设置错误,可以在后续继续修改和添加
1 | sql复制代码添加唯一字段:可以是多个,将上表shopId设置为唯一字段 |
本文转载自: 掘金