mysql replace into使用

使用mysql插入数据时,我们通常使用的是insert into来处理,replace into有时可以替代insert into功能,但replace into也有自己的用法

准备一张测试表:

CREATE TABLE `stu` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `cid` int(11) NOT NULL,
  `name` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `cid` (`cid`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

其中id为自增主键,cid为唯一索引

1、插入两条数据

INSERT INTO stu(cid, name) VALUES(1, '1111');
INSERT INTO stu(cid, name) VALUES(2, '2222');

查看表数据

2、使用REPLACE INTO插入

REPLACE INTO stu(cid, name) VALUES(3,'3333');

查看表数据

可以看到有插入数据

3、REPLACE INTO用法:使用REPLACE INTO时,首先会根据主键或者唯一索引查看表中是否有该条记录,有的话则先删除,然后插入数据;没有该记录则直接插入。示例

REPLACE INTO stu(cid, name) VALUES(3,'33331');

查看表数据

原先id为3的记录变成了id为4了,说明原先id为3的记录先删除了,然后新插入了id为4)(id自增)的新记录

如果针对id和cid都有一条记录进行操作,如下id为4和cid为2的记录都存在,执行以下语句

REPLACE INTO stu(id, cid, name) VALUES(4, 2,'42');

查看表数据

 可以看到原先的两条记录都给删除了,然后插入新记录

4、REPLACE INTO 使用形式

1. replace into tbl(col_name, ...) values(...)

2. replace into tbl(col_name, ...) select ...

3. replace into tbl set col_name=value, ...

 

posted @ 2019-09-25 16:24  花拾夕  阅读(2867)  评论(0编辑  收藏  举报