部分文章内容为公开资料查询整理,原文出处可能未标注,如有侵权,请联系我,谢谢。邮箱地址:gnivor@163.com ►►►需要气球么?请点击我吧!

MySQL笔记--注意

replace into 和 insert into..... on duplicate key update的异同

同:
1. 当key不存在时,两者相同,都是插入一条数据
2. key存在时,执行两者都保留主键值,且 auto_increment自增1

异:
1. 当key存在时,replace into先删除原来的记录,再插入新的记录,因此原有的数据会被清楚。此时若replace into语句包含的字段不完整,则原有字段有的值在replace into执行之后可能会被赋默认值。而insert into... on duplicate key update的效果只是单纯的update对应字段的值。(但是auto_increment会自增,推测可能是先delete,再insert,但是原有的字段值会被保留)
2. 从底层执行效率上来讲,replace要比insert .. on deplicate update效率要高,但是在写replace的时候,字段要写全,防止老的字段数据被删除。

posted @ 2017-11-23 21:30  流了个火  阅读(138)  评论(0编辑  收藏  举报
►►►需要气球么?请点击我吧!►►►
View My Stats