mysql保存或更新 ON DUPLICATE KEY UPDATE
INSERT INTO pms_statistic (id,tenantId,tenantName,isDeleted,createTime)VALUES(6257,50,'保存或修改0',1,'2020-01-00') ,(6258,51,'保存或修改1',1,'2020-01-01') ,(6259,52,'保存或修改2',1,'2020...
·
INSERT INTO pms_statistic (
id,
tenantId,
tenantName,
isDeleted,
createTime
)
VALUES
(
6257,50,'保存或修改0',1,'2020-01-00'
) ,(
6258,51,'保存或修改1',1,'2020-01-01'
) ,(
6259,52,'保存或修改2',1,'2020-01-02'
) ,(
62510,53,'保存或修改3',1,'2020-01-03'
)
ON DUPLICATE KEY UPDATE tenantId = VALUES(tenantId),tenantName = VALUES(tenantName)
,isDeleted = VALUES(isDeleted),createTime = VALUES(createTime);
该语句是基于主键(PRIMARY KEY)或唯一索引(UNIQUE INDEX)使用的。
如果已存在该唯一标示或主键就更新(显示受影响行的值:2)
如果不存在该唯一标示或主键则作为新行插入(显示受影响行的值:1)
如上:如果id(6257,6258,6259,62510)存在,根据id更新ON DUPLICATE KEY UPDATE后的字段数据(tenantId = VALUES(tenantId),tenantName = VALUES(tenantName),isDeleted = VALUES(isDeleted),createTime = VALUES(createTime))
执行sql前(存在6257id,其他id不存在)
执行后
6257修改,6258,6259,62510插入
受影响行:5(插入3条,修改1条(修改是两行))
注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法!
搜索公众号:【爪哇日记】关注最新文章
更多推荐
已为社区贡献1条内容
所有评论(0)