zoukankan      html  css  js  c++  java
  • Mysql 几种常见的插入 Insert into,Replace Into,Insert ignore

    简要说下三者的区别:insert into 最普遍的插入,如果表中存在主键相同的数据,执行会报错。

              replace into 如果表中存在主键相同的数据则根据主键修改当前主键的数据,反之则插入(存在就修改,反之插入

              insert ignore  如果表中存在主键相同的数据不在插入该条数据,反之则插入(存在则忽略,反之插入

    测试:

    1.新增一张测试表 并预置数据

    CREATE TABLE `insert_text` (
      `id` varchar(50) NOT NULL,
      `value` varchar(50) DEFAULT NULL ,
        `memo` varchar(50) DEFAULT NULL ,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    INSERT INTO `insert_text` (`id`, `value`, `memo`) VALUES ("1", "2", "3");

    2.检测replace into执行效果

    (1)执行语句(该语句的ID与预置数据的ID相同):

    REPLACE INTO `insert_text` (`id`, `value`, `memo`) VALUES ('1', 'replace', 'replace');

    执行结果:

    (注意:这里返回的受影响行数为2,所以在统计插入数据成功的条数需注意下)

    (2)执行语句(该语句的ID与预置数据的ID不同):

    REPLACE INTO `insert_text` (`id`, `value`, `memo`) VALUES ('2', 'replace', 'replace');

    执行结果:

    在这里因为主键不同,可以理解为执行了insert into

    3.检测insert ignore执行效果:

    (1)执行语句(该语句的ID与预置数据的ID相同):

    INSERT IGNORE `insert_text` (`id`, `value`, `memo`) VALUES ('1', 'ignore', 'ignore');

     

    数据未发生改变

    (2)执行语句(该语句的ID与预置数据的ID不同):

    INSERT IGNORE `insert_text` (`id`, `value`, `memo`) VALUES ('2', 'ignore', 'ignore');

    在这里因为主键不同,可以理解为执行了insert into

    好了,测试完成,需要根据不同的场景选择对应的插入方式----------------fillt

  • 相关阅读:
    vue项目发布到服务器之后出现空白页和图片找不到的问题
    H5中设置一个元素一直在页面的最底部
    vue项目打包出现的问题(日常记录)
    vue写H5注册页面
    vue项目中动态图片生成
    Java中boolean类型占用多少个字节
    Java将一个目录下的所有数据复制到另一个目录下
    Java使用递归找出某目录下的所有子目录以及子文件
    实现短信验证码
    C#连接Oracle数据库(直接引用dll使用)
  • 原文地址:https://www.cnblogs.com/fillt/p/9118238.html
Copyright © 2011-2022 走看看