on duplicate key update:针对主健与唯一健,当插入值中的主健值与表中的主健值,若相同的主健值,就更新on duplicate key update 后面的指定的字段值,若没有相同主健值,就插入该记录

mysql> create table tab_test(fd1 int NOT NULL,fd2  varchar(50),primary key(fd1))engine=innodb;
Query OK, 0 rows affected (0.22 sec) mysql> insert into tab_test(fd1,fd2) values(1,"matt");
Query OK, 1 row affected (0.16 sec) mysql> insert into tab_test(fd1,fd2) values(2,"toto");
Query OK, 1 row affected (0.17 sec) mysql> insert into tab_test values(3,"toto2");
Query OK, 1 row affected (0.17 sec) mysql> insert into tab_test values(3,"toto2") on duplicate key update fd2="test";
Query OK, 2 rows affected (0.17 sec) mysql> select * from tab_test;
+-----+------+
| fd1 | fd2 |
+-----+------+
| 1 | matt |
| 2 | toto |
| 3 | test |
+-----+------+
3 rows in set (0.00 sec) mysql> insert into tab_test values(5,"toto2") on duplicate key update fd2="test1";
Query OK, 1 row affected (0.17 sec) mysql> select * from tab_test;
+-----+-------+
| fd1 | fd2 |
+-----+-------+
| 1 | matt |
| 2 | toto |
| 3 | test |
| 5 | toto2 |
+-----+-------+
4 rows in set (0.00 sec)

replace :

针对主健与唯一健,当插入值中的主健值与表中的主健值,若相同的主健值,删除该记录,再插入值,若没有相同主健值,就插入该记录

mysql> replace tab_test set fd1=1,fd2="Matt";
Query OK, 2 rows affected (0.17 sec) mysql> select * from tab_test;
+-----+-------+
| fd1 | fd2 |
+-----+-------+
| 1 | Matt |
| 2 | toto |
| 3 | test |
| 5 | toto2 |
+-----+-------+
4 rows in set (0.00 sec) mysql> replace tab_test set fd1=1,fd2="xx";
Query OK, 2 rows affected (0.17 sec) mysql> select * from tab_test;
+-----+-------+
| fd1 | fd2 |
+-----+-------+
| 1 | xx |
| 2 | toto |
| 3 | test |
| 5 | toto2 |
+-----+-------+
4 rows in set (0.00 sec)

insert into ... on duplicate key update 与 replace 区别的更多相关文章

  1. mysql ON DUPLICATE KEY UPDATE、REPLACE INTO

    INSERT INTO ON DUPLICATE KEY UPDATE 与 REPLACE INTO,两个命令可以处理重复键值问题,在实际上它之间有什么区别呢?前提条件是这个表必须有一个唯一索引或主键 ...

  2. 【转】MySQL的Replace into 与Insert into on duplicate key update真正的不同之处

    原文链接:http://www.jb51.net/article/47090.htm   今天听同事介绍oracle到mysql的数据migration,他用了Insert into ..... on ...

  3. mysql 中 replace into 与 insert into on duplicate key update 的使用和不同点

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

  4. MySql中4种批量更新的方法update table2,table1,批量更新用insert into ...on duplicate key update, 慎用replace into.

    mysql 批量更新记录 MySql中4种批量更新的方法最近在完成MySql项目集成的情况下,需要增加批量更新的功能,根据网上的资料整理了一下,很好用,都测试过,可以直接使用. mysql 批量更新共 ...

  5. Replace into 与Insert into on duplicate key update的区别

    前提条件:除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用这2条语句没有意义.该语句会与INSERT相同 1. Replace into (1)   添加相同的主键 操作前       ...

  6. mysql 添加数据如果数据存在就更新ON DUPLICATE KEY UPDATE和REPLACE INTO

    #下面建立game表,设置name值为唯一索引. CREATE TABLE `game` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar( ...

  7. insert into on duplicate key update

    问题 有一个表,建表语句如下: CREATE TABLE `tbl_host` ( `id` bigint(64) NOT NULL AUTO_INCREMENT, `ip` varchar(255) ...

  8. SQL语句实现不存在即插入,存在则increase某字段的功能insert into … on duplicate key update

    前提条件:必须是唯一主键: CREATE UNIQUE INDEX idx_vote_object ON test_customers_vote (`vote_object`, `vote_objec ...

  9. mysql插入数据时 insert IGNORE、ON DUPLICATE KEY UPDATE、replace into

    转: mysql insert时几个操作DELAYED .IGNORE.ON DUPLICATE KEY UPDATE的区别 博客分类: mysql基础应用   mysql insert时几个操作DE ...

随机推荐

  1. 【Linux远程管理】RDP协议远程管理

    RDP(Remote Desk Protocol).远程桌面协议,常用的Windows操作系统的远程桌面管理就就是基于该协议. 而在Linux下,我们也是可以找到开源的rdp server的,这就是x ...

  2. URAL1029. Ministry(DP+路径)

    链接 路径麻烦啊 很多细节 倒回去搜一遍 卡了一节数据库.. #include <iostream> #include<cstdio> #include<cstring& ...

  3. URAL1009

    链接 第一道URAL题 简单递推 #include <iostream> #include<cstdio> #include<cstring> #include&l ...

  4. Java Memory Management(1)

    Java Memory Management, with its built-in garbage collection, is one of the language’s finest achiev ...

  5. 教你如何通过ICCID找回丢失的的iPhone

    22日晚买了FACETIME,在某宝上买的.价格不贵,可以查到偷手机的人注册FT的号码,还可以查询手机被刷机和被维修的日期(这个很关键) 27日手机被刷机,遂买了某宝查询ICCID的服务,找到一串IC ...

  6. LightOJ 1074 Extended Traffic SPFA 消负环

    分析:一看就是求最短路,然后用dij,果断错了一发,发现是3次方,有可能会出现负环 然后用spfa判负环,然后标记负环所有可达的点,被标记的点答案都是“?” #include<cstdio> ...

  7. HDU 1881

    思路:一开始以为rating相同的点就直接比较rp然后建图,后来想想不对,因为这样发现不了冲突.后来一想对于rating相同的点可以不用排序,因为对于这些点,他们的rp必然不相同,也就是说在这些点的内 ...

  8. [Andrew]Ext.net Grid常用js

    var gridFunction= function (gridId) {                //获取当前Grid                var gridView = Ext.ge ...

  9. Jmeter初步使用三--使用jmeter自身录制脚本

    今日,小编在网上看到很多人使用badboy来录制,然后再把jmx脚本弄到Jmeter上做性能测试.这种方法在小编刚用Jmeter时也曾经用过,但是感觉太麻烦了,所以就找了下其它资料.结果,小编偶然发现 ...

  10. Problem - 433C - Codeforces解题报告

    对于这题本人刚开始的时候的想法是:先把最大两数差的位置找到然后merge计算一个值再与一连串相同的数做merge后计算一个值比较取最大值输出:可提交后发现不对,于是本人就搜了一下正解发现原来这题的正确 ...