MYSQL中on duplicatekey update有什么优缺点
1)没有key的时候,replace与insert .. on deplicate udpate相同。
2)有key的时候,都保留主键值,并且auto_increment自动+1
不同之处:有key的时候,replace是delete老记录,而录入新的记录,所以原有的所有记录会被清除,这个时候,如果replace语句的字段不全的话,有些原有的比如c字段的值会被自动填充为默认值。
而insert .. deplicate update则只执行update标记之后的sql,从表象上来看相当于一个简单的update语句。
但是实际上,根据我推测,如果是简单的update语句,auto_increment不会+1,应该也是先delete,再insert的操作,只是在insert的过程中保留除update后面字段以外的所有字段的值。
所以两者的区别只有一个,insert .. on deplicate udpate保留了所有字段的旧值,再覆盖然后一起insert进去,而replace没有保留旧值,直接删除再insert新值。
从底层执行效率上来讲,replace要比insert .. on deplicate update效率要高,但是在写replace的时候,字段要写全,防止老的字段数据被删除。
钥匙英语怎么说
钥匙英语是key,具体释义如下:读音:英 [kiː]、美 [kiː]表达意思:钥匙;关键,密钥;(键盘乐器或电脑键盘的)键;调,声调,色调;答案;图例; 扳手;销子,楔,栓;翼果;板条间首层灰泥;(篮球)罚球区;低岛,礁;关键的,主要的词性:通常在句中既可以作动词,也可以作形容词、名词。固定搭配:key point 关键点;要点例句:He turned the key in the lock. 他转动钥匙开锁。钥匙特点介绍:钥匙的发明比锁要晚些,古代的埃及人是世界上最早使用钥匙的。他们的锁是把一条木制门栓插入一个槽中,槽沟顶部有一个木制栓。门栓插入槽沟后,木制栓便会插入门栓的孔。这样一来,门栓便很牢固,必须用钥匙才能打开。由于埃及人的锁只能用在有门栓的那一面,不利于灵活地开与关,于是,希腊人在此基础上,又研究出一种可以从另一面打开的锁。希腊人所制的钥匙,是一根弯曲的木棒,形状和大小很像农夫用的小镰刀。但是也有一些钥匙长达3尺,必须扛在肩上才能搬动,相当沉重。
mysql之replace和ON DUPLICATE KEY UPDATE的区别
1)没有key的时候,replace与insert .. on deplicate udpate相同。
2)有key的时候,都保留主键值,并且auto_increment自动+1
不同之处:有key的时候,replace是delete老记录,而录入新的记录,所以原有的所有记录会被清除,这个时候,如果replace语句的字段不全的话,有些原有的比如c字段的值会被自动填充为默认值。
而insert .. deplicate update则只执行update标记之后的sql,从表象上来看相当于一个简单的update语句。
但是实际上,根据我推测,如果是简单的update语句,auto_increment不会+1,应该也是先delete,再insert的操作,只是在insert的过程中保留除update后面字段以外的所有字段的值。
所以两者的区别只有一个,insert .. on deplicate udpate保留了所有字段的旧值,再覆盖然后一起insert进去,而replace没有保留旧值,直接删除再insert新值。
从底层执行效率上来讲,replace要比insert .. on deplicate update效率要高,但是在写replace的时候,字段要写全,防止老的字段数据被删除。
个人倾向与用Replace。