灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1859回复:0

[mysql]mysql的replace into语句分析

楼主#
更多 发布于:2012-09-01 02:14



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




喜欢0 评分0
游客

返回顶部