MySQL数据库高级数据操作之新增数据
短信预约 -IT技能 免费直播动态提醒
多数据插入
只要写一次insert,可以插入多条数据
基本语法:
insert into 表名 [(字段列表)] values (值列表), (值列表)...;
create table my_student(
id int primary key auto_increment,
name varchar(10)
);
insert into my_student (name) values ('张三'), ('李四'), ('王五');
mysql> select * from my_student;
+----+--------+
| id | name |
+----+--------+
| 1 | 张三 |
| 2 | 李四 |
| 3 | 王五 |
+----+--------+
主键冲突
insert into my_student (id, name) values (1, '张飞');
ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
1、主键冲突更新
如果插入过程中主键冲突,那么采用更新方式
insert into 表名 [(字段列表)] on duplicate key update 字段=新值;
insert into my_student (id, name) values (1, '张飞')
on duplicate key update name = '张飞';
mysql> select * from my_student;
+----+--------+
| id | name |
+----+--------+
| 1 | 张飞 |
| 2 | 李四 |
| 3 | 王五 |
+----+--------+
2、主键冲突替换
replace into 表名 [(字段列表)] values (值列表);
replace into my_student (id, name) values (1, '刘备');
mysql> select * from my_student;
+----+--------+
| id | name |
+----+--------+
| 1 | 刘备 |
| 2 | 李四 |
| 3 | 王五 |
+----+--------+
蠕虫复制
一分为二,成倍增加
从已有的数据中获取数据,并且插入到数据表中
insert into 表名 [(字段列表)] select */字段列表 from 表名;
insert into my_student (name) select name from my_student;
mysql> select * from my_student;
+----+--------+
| id | name |
+----+--------+
| 1 | 刘备 |
| 2 | 李四 |
| 3 | 王五 |
| 4 | 刘备 |
| 5 | 李四 |
| 6 | 王五 |
+----+--------+
注意:
- 蠕虫复制通常是重复数据,可以短期内复制大量的数据,从而测试表的压力
- 需要注意主键冲突
到此这篇关于MySQL数据库高级数据操作之新增数据的文章就介绍到这了,更多相关MySQL新增数据内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341