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-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插入

mysql保存或更新 ON DUPLICATE KEY UPDATE_第1张图片
受影响行:5(插入3条,修改1条(修改是两行))
 


注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法! 

 

 

 搜索公众号:【爪哇日记】关注最新文章

 

你可能感兴趣的:(数据库,sql)