mysql的replace into分析

原创 2012年03月22日 15:41:44

replace into和insert into是很相似的,唯一的差别就是使用replace into的时候会首先根据表的主键来判断是否存在与将要replace into的语句相同的记录,如果有的话,就先将旧记录删除,然后在插入新纪录。并且replace into执行后会返回一个数值,如果为1则表示执行的时候插入了一条数据,如果为2表示执行时删除了旧记录并且插入了新纪录。虽然replace into在平常使用过程中不会出现什么严重的问题。如果我们要操作的表中有一个自增的主键,那么就要出问题了。首先,因为新纪录与老记录的主键值不同,所以其他表中所有与本表老数据主键id建立的关联全部会被破坏。其次,就是,频繁的REPLACE INTO 会造成新纪录的主键的值迅速增大。总有一天。达到最大值后就会因为数据太大溢出了。就没法再插入新纪录了。数据表满了,不是因为空间不够了,而是因为主键的值没法再增加了。

相关文章推荐

replace into导致mysql自增列导致主键重复问题分析

前几天开发童鞋反馈一个利用load data infile命令导入数据主键冲突的问题,分析后确定这个问题可能是mysql的一个bug,这里提出来给大家分享下。以免以后有童鞋遇到类似问题百思不得其解,难...
  • xtjsxtj
  • xtjsxtj
  • 2015年06月13日 22:32
  • 2124

用oracle的merge实现mysql的replace into

转载自:http://voole.iteye.com/blog/1292340 mysql有一个replace into的dml语句,类似insert,但是会在insert之前检查表的唯一索...

MySQL "replace into" 的坑

http://blog.xupeng.me/2013/10/11/mysql-replace-into-trap/ MySQL 对 SQL 有很多扩展,有些用起来很方便,但有一些被误用之后会...

mysql_replace into

REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。  ...

Mysql中replace into用法详细说明

Replace into是Insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。 在SQL Serve...

MySQL Replace INTO的使用

今天DST里面有个插件作者问我关于Replace INTO和INSERT INTO的区别,我和他说晚上上我的blog看吧,那时候还在忙,现在从MYSQL手册里找了点东西,MYSQL手册里说REPLAC...

MYSQL中replace into的用法

今天在编程的时候,学习了replace into的用法,真的很好用,是insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3...
  • clj9017
  • clj9017
  • 2014年01月10日 15:54
  • 421

MySQL中的replace into

今天在学习的时候突然看到一个以前从没用过的mysql语法–replace,它可以说是insert语法的增强版,功能类似于on duplicate key update。在插入数据之前,判断主键或者唯一...

mysql replace into用法详细说明

REPLACE的运行与INSERT很相似,只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除,注意,除非表...

mysql的replace into类似于oracle的merge sql语句

mysql的replace into命令replace into的用法,真的很好用,是insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mysql的replace into分析
举报原因:
原因补充:

(最多只允许输入30个字)