mysql中replace into用法

前言

replace into 跟 insert into 功能类似,不同点在于:replace into 首先尝试插入数据到表中

  1. 如果发现表中已经有相同的数据(根据主键或者唯一索引判断)则先删除原来的数据,然后插入新的。
  2. 否则,直接插入新数据。

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

使用

创建表

CREATE TABLE `test_res_slave_current_200` (
  `k` int(10) unsigned NOT NULL,
  `id` int(10) unsigned NOT NULL,
  `num` int(10) unsigned NOT NULL,
  PRIMARY KEY (`k`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入数据

insert into test_res_slave_current_200(k,id,num) values(2404021140,1000,1000);
insert into test_res_slave_current_200(k,id,num) values(2404021140,1000,1000); // 报错 主键重复
replace into test_res_slave_current_200(k,id,num) values(2404021140,1000,1000); // 执行成功 如果主键存在且其他列数据有变更 影响行数为2,其他情况为1

参考

MYSQL中replace into的用法

posted @ 2024-04-17 16:32  strongmore  阅读(189)  评论(0编辑  收藏  举报