mysql中 REPLACE INTO 和 INSERT INTO 的区别
REPLACE INTO 和 INSERT INTO 功能类似,都是像表中插入数据,不同点在于:REPLACE INTO 首先尝试插入数据到表中:
- 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
- 否则,直接插入新数据。
要注意的是:
- 插入数据的表必须有主键或者是唯一索引!否则的话,REPLACE INTO 会直接插入数据,这将导致表中出现重复的数据。
- 除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。
- 为了能够使用REPLACE,您必须同时拥有表的INSERT和DELETE权限。
- REPLACE语句会返回一个数,来指示受影响的行的数目。该数是被删除和被插入的行数的和。
假如表中已经设置了主键,这时向表中插入一条主键已经存在的数据,那么先删除此行数据,然后插入新的数据,受影响的行: 2;如果向表插入一条主键不存在的数据,则是直接插入新数据,受影响的行: 1。
本文详细解析了MySQL中REPLACEINTO与INSERTINTO的区别,REPLACEINTO在遇到主键或唯一索引冲突时,会先删除原有行再插入新行,而INSERTINTO则会直接插入新数据。文章强调了使用REPLACEINTO时表必须有主键或唯一索引的重要性。
2230

被折叠的 条评论
为什么被折叠?



