Mysql插入更新数据的方式

资讯 2年前 (2022) 千度导航
30 0 0

1. 传统的操作方式

select * from table  where id = xxx   # 判断是否存在数据
若不存在,则执行insert into table set name =ss
若存在,则执行update table set name =xss

2. 效率较高的操作方式

2.1 使用REPLACE语句

replace into table set uid=121313,apply_id=311,color=‘A1',created_at=NOW(),updated_at=NOW()

其工作原理是: 当表中存在数据时,则先执行delete操作,再执行insert操作;如果不存在重复数据,则执行insert操作。但该方法会导致自增主键id容易出现不连续性。

2.2 ON DUPLICATE KEY UPDATE语句

insert into table set uid = 123456 ,apply_id = 521,color ='D1',created_at = NOW(),updated_at=NOW() on duplicate key update color ='D1' ,updated_at = NOW();

其工作原理是: 当插入的数据与表中记录的数据的主键或唯一索引产生重复值,则就会执行旧行的更新;否则执行插入操作。如果行作为新记录被insert,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2。每次更新的情况下,主键id也会自增。

优先推荐ON DUPLICATE KEY UPDATE语句

版权声明:千度导航 发表于 2022年7月11日 23:10。
转载请注明:Mysql插入更新数据的方式 | 千度百科

相关文章