mysql中replace into与insert into区别

 更新时间:2023年01月18日 09:49:31   作者:帅成一匹马  
本文主要介绍了mysql中replace into与insert into区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

replace into 遇到主键或唯一索引冲突时,会先删除数据,再插入新数据

insert into 遇到主键或唯一索引冲突时,会直接报错,不插入数据

案例:

新建一个test表,三个字段,id,title,uid, id是自增的主键,uid是唯一索引;

CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) DEFAULT NULL,
  `uid` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `sss` (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

插入2条数据

insert into  test(title,uid) VALUES ('张三','001');
insert into  test(title,uid) VALUES ('张三','002');

使用 insert into插入数据时,报错

insert into test(title,uid) VALUES ('李四','001');

使用 replace into插入数据时:

replace into test(title,uid) VALUES ('李四','001');

replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。

要注意的是:插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

到此这篇关于mysql中replace into与insert into区别的文章就介绍到这了,更多相关mysql replace into与insert into内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL中如何重建表

    MySQL中如何重建表

    这篇文章主要介绍了MySQL中如何重建表问题。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • MySQL 创建多对多和一对一关系方法

    MySQL 创建多对多和一对一关系方法

    这篇文章主要介绍了MySQL 创建多对多和一对一关系方法,文章举例详细说明具有一定的参考价值,需要的小伙伴可以参考一下
    2022-03-03
  • MySQL5创建存储过程的示例

    MySQL5创建存储过程的示例

    存储过程可以一次执行多个sql语句,所以php只连接数据库一次就能查询多个语句;不过要返回多个结果集就必须用mysqli扩展来查询,否则会提示错误can't return a result set in the given context
    2008-09-09
  • MySQL的左连接、右连接、内连接用法解读

    MySQL的左连接、右连接、内连接用法解读

    这篇文章主要介绍了MySQL的左连接、右连接、内连接用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • MySQL的binlog日志使用详解

    MySQL的binlog日志使用详解

    这篇文章主要介绍了MySQL的binlog日志使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • MySQL如何使用limit获取最后一条记录

    MySQL如何使用limit获取最后一条记录

    这篇文章主要介绍了MySQL如何使用limit获取最后一条记录问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • MySQL联合索引遵循最左前缀匹配原则

    MySQL联合索引遵循最左前缀匹配原则

    这篇文章主要介绍了MySQL联合索引遵循最左前缀匹配原则, MySQL联合索引遵循最左前缀匹配原则,即最左优先,查询的时候会优先匹配最左边的索引
    2022-08-08
  • Ubuntu配置Mysql主从数据库

    Ubuntu配置Mysql主从数据库

    MySQL数据库支持数据库的主从复制功能,因此在集群方面具有其独特的优势。众多国内外大型网站架构体系中,均采用了MySQL的主从数据库配置来实现查询负载、数据库热备等功能。本人在实际的Web项目中也涉及到这一需求,在此将如何配置实现做个简单小结。
    2014-07-07
  • MySQL Slave 触发 oom-killer解决方法

    MySQL Slave 触发 oom-killer解决方法

    这篇文章主要介绍了MySQL Slave 触发 oom-killer解决方法,需要的朋友可以参考下
    2016-07-07
  • 连接远程mysql数据库失败常见原因及解决方案

    连接远程mysql数据库失败常见原因及解决方案

    这篇文章主要介绍了连接远程mysql数据库失败常见原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论