这篇文章主要介绍“mysql中insert ignore、insert和replace的区别是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql中insert ignore、insert和replace的区别是什么”文章能帮助大家解决问题。
指令 | 已存在 | 不存在 | 举例 |
---|---|---|---|
insert | 报错 | 插入 | insert into names(name, age) values(“小明”, 23); |
insert ignore | 忽略 | 插入 | insert ignore into names(name, age) values(“小明”, 24); |
replace | 替换 | 插入 | replace into names(name, age) values(“小明”, 25); |
表要求:有PrimaryKey,或者unique索引
结果:表id都会自增
创建表
CREATE TABLE names(
id INT(10) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) UNIQUE,
age INT(10)
)
插入数据
mysql> insert into names(name, age) values("小明", 24);
mysql> insert into names(name, age) values("大红", 24);
mysql> insert into names(name, age) values("大壮", 24);
mysql> insert into names(name, age) values("秀英", 24);
mysql> select * from names;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | 小明 | 24 |
| 2 | 大红 | 24 |
| 3 | 大壮 | 24 |
| 4 | 秀英 | 24 |
+----+--------+------+
插入已存在, id会自增,但是插入不成功,会报错
mysql> insert into names(name, age) values("小明", 23);
ERROR 1062 (23000): Duplicate entry '小明' for key 'name'
已存在替换,删除原来的记录,添加新的记录
mysql> replace into names(name, age) values("小明", 23);
Query OK, 2 rows affected (0.00 sec)
mysql> select * from names;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 2 | 大红 | 24 |
| 3 | 大壮 | 24 |
| 4 | 秀英 | 24 |
| 6 | 小明 | 23 |
+----+--------+------+
不存在替换,添加新的记录
mysql> replace into names(name, age) values("大名", 23);
Query OK, 1 row affected (0.00 sec)
mysql> select * from names;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 2 | 大红 | 24 |
| 3 | 大壮 | 24 |
| 4 | 秀英 | 24 |
| 6 | 小明 | 23 |
| 7 | 大名 | 23 |
+----+--------+------+
插入已存在,忽略新插入的记录,id会自增,不会报错
mysql> insert ignore into names(name, age) values("大壮", 25);
Query OK, 0 rows affected, 1 warning (0.00 sec)
插入不存在,添加新的记录
mysql> insert ignore into names(name, age) values("壮壮", 25);
Query OK, 1 row affected (0.01 sec)
mysql> select * from names;
+----+--------+------+
| id | name | age |
+----+--------+------+
| 2 | 大红 | 24 |
| 3 | 大壮 | 24 |
| 4 | 秀英 | 24 |
| 6 | 小明 | 23 |
| 7 | 大名 | 23 |
| 10 | 壮壮 | 25 |
+----+--------+------+
关于“mysql中insert ignore、insert和replace的区别是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。