`

MySQL Replac Into 和 Insert into

 
阅读更多

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

 

https://segmentfault.com/a/1190000002527333

分享到:
评论

相关推荐

    MySQL中REPLACE INTO和INSERT INTO的区别分析

    所有缺失的列被设置为各自的默认值,这和INSERT一样。您不能从当前行中引用值,也不能在新行中使用值。如果您使用一个例如“SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT(col_...

    MySQL的Replace into 与Insert into on duplicate key update真正的不同之处

    今天听同事介绍oracle到mysql的数据migration,他用了Insert into ..... on duplicate key update ...,我当时就想怎么不用Replace呢,于是回来就仔细查了下,它们果然还是有区别的

    mysql 中 replace into 与 insert into on duplicate key update 的用法和不同点实例分析

    replace into和insert into on duplicate key update都是为了解决我们平时的一个问题 就是如果数据库中存在了该条记录,就更新记录中的数据,没有,则添加记录。 我们创建一个测试表test CREATE TABLE `test` ( `...

    Mysql中replace与replace into的用法讲解

    Mysql replace与replace into都是经常会用到的功能;replace其实是做了一次update操作,而不是先delete再insert;而replace into其实与insert into很相像,但对于replace into,假如表中的一个旧记录与一个用于...

    浅析MySQL replace into 的用法

    在 SQL Server 中可以这样处理: 代码如下: if not exists (select 1 from t where id = 1) ...MySQL 中有更简单的方法: replace into 代码如下: replace into t(id, update_time) values(1, now());或 repl

    mysql 的replace into实例详解

    replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中。 1、如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2、 否则,直接插入新...

    MySQL Replace INTO的使用

    REPLACE的运行与INSERT很相像。只有一点除外,如果表中的一个旧记录与一个用于...所有缺失的列被设置为各自的默认值,这和INSERT一样。您不能从当前行中引用值,也不能在新行中使用值。如果您使用一个例如“SET col_

    MySQL使用Replace操作时造成数据丢失的问题解决

    前言 公司开发人员在更新数据时使用了 replace into 语句,由于使用不当导致了数据的大量丢失,到底是...REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row

    MySQL replace into 语句浅析(一)

     在笔者支持业务过程中,经常遇到开发咨询replace into 的使用场景以及注意事项,这里做个总结。从功能原理,性能和注意事项上做个说明。 二 原理 2.1 当表中存在主键但是不存在唯一建的时候。 表结构 代码如下: ...

    MySQL中replace into语句的用法详解

    if not exists (select 1 from table where id = 1) insert into table(id, update_time) values(1, getdate()) else update table set update_time = getdate() where id = 1 在MySQL 中也可以先select,判断是否...

    mysql 替换字段部分内容及mysql 替换函数replace()

    [mysql]replace的用法(替换某字段部分内容) [mysql]replace的用法 ... insert into table (id,name) values(‘1′,’aa’),(‘2′,’bb’)  如果存在相同的值则不会插入数据 2.replace(object,search,rep

    mysql 操作总结 INSERT和REPLACE

    一、INSERT和REPLACE INSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理重复的数据。 1. INSERT的一般用法 MySQL中的INSERT语句和标准的INSERT不太一样,在标准的...

    详解MySQL数据库insert和update语句

    用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。SQL语句中的更新语句update是最...在MySQL中又多了一个REPLACE语句,因 此,本文以MySQL

    基于MySql的扩展功能生成全局ID

    本文利用 MySQL的扩展功能 REPLACE INTO 来生成全局id,REPLACE INTO和INSERT的功能一样,但是当使用REPLACE INTO插入新数据行时,如果新插入的行的主键或唯一键(UNIQUE Key)已有的行重复时,已有的行会先被删除,...

    关于避免MySQL替换逻辑SQL的坑爹操作详解

    replace into和insert into on duplicate key 区别 replace的用法 当不冲突时相当于insert,其余列默认值 当key冲突时,自增列更新,replace冲突列,其余列默认值 Com_replace会加1 Innodb_rows_updated会加1 ...

    MYSQL

    5.1 MySQL对ANSI SQL92 的扩充 5.2 以ANSI模式运行 MySQL 5.3 MySQL相比ANSI SQL92的差别 5.4 MySQL 缺乏的功能 5.4.1 子选择(Sub-selects) 5.4.2 SELECT INTO TABLE 5.4.3 事务...

Global site tag (gtag.js) - Google Analytics