風雲 (ID: 3)
头衔:论坛版主
等级:大天使
积分:1567
发帖:70 篇
来自:保密
注册:2022/3/30 15:28:53
造访:2024/11/22 10:43:44
发帖:70 篇
来自:保密
注册:2022/3/30 15:28:53
造访:2024/11/22 10:43:44
[ 第 1 楼 ]
回复
两者都是通过主键或唯一键冲突机制,实现的效果几乎一致,但是原理不一致。
replace into 是先删除存在的主键或唯一键记录,然后再全部插入,会导致自增ID 越来越大。
insert into ... on duplicate key update col1=val1 会尝试插入,因此,插入过程中同样会造成自增ID 变大,如果插入遇到冲突,则更新当前行指定列。
看起来,还是 replace into 比较省事,不用写两次列定义。
replace into 是先删除存在的主键或唯一键记录,然后再全部插入,会导致自增ID 越来越大。
insert into ... on duplicate key update col1=val1 会尝试插入,因此,插入过程中同样会造成自增ID 变大,如果插入遇到冲突,则更新当前行指定列。
看起来,还是 replace into 比较省事,不用写两次列定义。
2022/11/1 12:28:33
IP:已设置保密