北京SEO

mysql中INSERT IGNORE 与INSERT INTO,REPLACE INTO的区别

2019/10/10/17:36:46  阅读:1907  来源:谷歌SEO算法  标签: 人工智能卓医

在mysql中INSERT IGNORE,INSERT INTO,REPLACE INTO三者都是插入数据到mysql数据库的语句,那么这三者之间到底有什么区别呢?

mysql中常用的三种插入数据的语句:

insert into表示插入数据,数据库会检查主键,如果出现重复会报错;

replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;

insert ignore表示,如果中已经存在相同的记录,则忽略当前新数据;下面通过代码说明之间的区别,如下:

  1. createtabletesttb(
  2. idintnotnullprimarykey,
  3. namevarchar(50),
  4. ageint
  5. );
  6. insertintotesttb(id,name,age)values(1,"bb",13);
  7. select*fromtesttb;
  8. insertignoreintotesttb(id,name,age)values(1,"aa",13);
  9. select*fromtesttb;//仍是1,“bb”,13,因为id是主键,出现主键重复但使用了ignore则错误被忽略
  10. replaceintotesttb(id,name,age)values(1,"aa",12);
  11. select*fromtesttb;//数据变为1,"aa",12

举例说明,代码如下:

  1. insertinto
  2. table1
  3. idname
  4. 1tb
  5. 2zp
  6. table2
  7. id(主键)name
  8. 1tb
  9. 2cw
  10. 3zp
  11. insertignoreintotable1select*fromtable2执行结果为
  12. table1
  13. idname
  14. 1tb
  15. 2zp
  16. 3zp

注:如果使用的是insert into 发现重复的会报错,而insert ignore into 发现将要插入的数据行中包含唯一索引的字段值已存在,会丢弃掉这行数据,不做任何处理.

  1. replaceinto
  2. table1
  3. idnameps
  4. 1tba
  5. 2zpb
  6. table2
  7. id(主键)name
  8. 1tb
  9. 2cw
  10. 3zp
  11. replaceintotable1select*fromtable2执行结果为
  12. table1 //phpfensi.com
  13. idnameps
  14. 1tbNULL
  15. 2cwNULL
  16. 3zpNULL

注:REPLACE发现重复的先删除再插入,如果记录有多个字段,在插入的时候如果有的字段没有赋值,那么新插入的记录这些字段为空.

总结:NSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据,这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的.

广告内容

mysql中INSERT IGNORE 与INSERT INTO,REPLACE INTO的区别 mysql中INSERT IGNORE 与INSERT INTO,REPLACE INTO的区别 mysql中INSERT IGNORE 与INSERT INTO,REPLACE INTO的区别

相关阅读

热门评论

SEO探索者团队 SEO探索者团队

SEO服务&网站优化

总篇数182

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法