zoukankan      html  css  js  c++  java
  • Mysql 语句 insert into 与 replace into 区别

    【】insert into 与 replace into 区别

    replace into 的运行与insert into 很相似。不同点:

    若表中的一个旧记录与一个用于PRIMARY KEY 或 一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。

    尤其注意:

    除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE INTO 语句没有意义。

    因为没有索引被用于确定是否新行复制了其它行。

    实例如下:

    (1)创建表

    -- [1]drop
    DROP TABLE `students`;
    
    -- [2]create
    CREATE TABLE `students` (
      `id` INT AUTO_INCREMENT PRIMARY KEY,
      `sName` VARCHAR (10) NOT NULL,
      `sAge` INT (2) UNSIGNED ZEROFILL NOT NULL,
      `sAddr` VARCHAR (20) DEFAULT NULL,
      `sGrade` INT (2) DEFAULT NULL,
      `sStuId` INT (8) DEFAULT NULL,
      `sSex` INT (1) UNSIGNED DEFAULT NULL
    ) ENGINE = INNODB;

    (2)插入insert into

    SQL语句:

    INSERT INTO students(id, sName, sAge, sAddr, sGrade, sStuId, sSex) 
    VALUES (1, 'wangchao', 8, 'heyang', 1, 1801111, 0);

    执行结果:

    查询数据:

    (3)插入replace into

    SQL语句:

    REPLACE INTO students(id, sName, sAge, sAddr, sGrade, sStuId, sSex) 
    VALUES (1, 'suntao', 9, 'weinan', 3, 1803110, 1);

    执行结果:

    注意:共2行受影响,一行被删除,一行被添加。同时具有delete、insert操作。

    查询数据:

    (4)insert into on duplicate key update

    SQL语句:

    INSERT INTO students(id, sName, sAge, sAddr, sGrade, sStuId, sSex) 
    VALUES (1, 'wangchao', 8, 'heyang', 1, 1801111, 0)
    ON DUPLICATE KEY UPDATE 
    sName = 'wangchao',
    sAge = 8,
    sAddr = 'heyang',
    sGrade = 1,
    sStuId = 1801111,
    sSex = 0;

    执行结果:

    注意:共2行受影响,原来行被删除,新的一行被添加。但是主键值id为1保持不变。

    查询数据:

    Good Good Study,Day Day Up.

    顺序 选择 循环 总结

  • 相关阅读:
    利用html2canvas将html页面截图 js
    微信网页分享功能 js
    json数组排序 js
    数字千位符 js
    调用百度Api读取图片文字 C#
    判断手机移动端js
    网页添加水印js
    css 文字隐藏,鼠标移动显示
    删除某个数据库下所有表
    linux错误记录
  • 原文地址:https://www.cnblogs.com/Braveliu/p/9877884.html
Copyright © 2011-2022 走看看