当前位置: 代码迷 >> MySQL >> MySQL Replac Into 跟 Insert into
  详细解决方案

MySQL Replac Into 跟 Insert into

热度:232   发布时间:2016-05-05 16:30:30.0
MySQL Replac Into 和 Insert into

?

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.csdn.net/rainkin1993/article/details/8592617

?

https://segmentfault.com/a/1190000002527333

  相关解决方案