MySQL Replac Into 和 Insert into

本文详细解释了MySQL REPLACE INTO与INSERT INTO ON DUPLICATE KEY UPDATE的区别,并提供了正确的使用场景。同时,给出了将数据从一个表导入到另一个表时的优化方法。

 http://www.w2bc.com/article/47069

http://www.miaoyueyue.com/archives/813.html

http://www.cnblogs.com/humble/p/3149734.html

http://justinvoelkel.me/laravel-angularjs-part-two-login-and-authentication/

MySQL 在数据冲突时实际上是删掉了旧记录,再写入新记录,这是使用 REPLACE INTO 时最大的一个误区,

而满足这一需求的 MySQL 方言是 INSERT INTO auto (k, v) VALUES (1, ‘1-1’) ON DUPLICATE KEY UPDATE v=VALUES(v);

鉴于此,很多使用 REPLACE INTO 的场景,实际上需要的是 INSERT INTO … ON DUPLICATE KEY UPDATE,在正确理解 REPLACE INTO 行为和副作用的前提下,谨慎使用 REPLACE INTO。

 

原来导数据的语句:

INSERT INTO `z_art_bak`(`pk`, `title`, `date`, `category`, `author_name`, `url`, `thumbnail_pic`, `sid`) SELECT `pk`, `title`, `date`, `category`, `author_name`, `url`, `thumbnail_pic`, `sid` FROM `z_art` WHERE date(`date`) BETWEEN '2015-11-01' AND '2015-11-30' GROUP BY `title`

 

直接入库的语句:

INSERT INTO `z_art_bak`(`pk`, `title`, `date`, `category`, `author_name`, `url`, `thumbnail_pic`, `sid`) VALUES (...) ON DUPLICATE KEY `title`= VALUES(`title`)

 

参考网址:http://www.cnblogs.com/monian/archive/2014/10/09/4013784.html

 

http://blog.youkuaiyun.com/rainkin1993/article/details/8592617

 

https://segmentfault.com/a/1190000002527333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值