zoukankan      html  css  js  c++  java
  • insert into ... on duplicate key update 与 replace 区别

     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)
  • 相关阅读:
    HDU 1882 Strange Billboard(位运算)
    Codeforces Round #243 (Div. 2) A~C
    Codeforces Round #242 (Div. 2) A~C
    2014 微软 编程之美初赛第一场 题目3 : 活动中心
    2014年微软编程之美初赛第一场 第二题 树
    POJ 2318 TOYS && POJ 2398 Toy Storage(几何)
    Coder-Strike 2014
    POJ 1269 Intersecting Lines(几何)
    HDU 1883 Phone Cell (圆覆盖最多点)
    HDU 1429 胜利大逃亡(续)(三维BFS)
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5637014.html
Copyright © 2011-2022 走看看