MySQL数据库高级数据操作之新增数据

吾爱主题 阅读:143 2024-04-01 23:25:58 评论:0

多数据插入

只要写一次insert,可以插入多条数据

基本语法:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 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 | 王五   | + ----+--------+

主键冲突

?
1 2 insert into my_student (id, name ) values (1, '张飞' ); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY'

1、主键冲突更新

如果插入过程中主键冲突,那么采用更新方式

?
1 2 3 4 5 6 7 8 9 10 11 12 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、主键冲突替换

?
1 2 3 4 5 6 7 8 9 10 replace into 表名 [(字段列表)] values (值列表); replace into  my_student (id, name ) values (1, '刘备' ); mysql> select * from my_student; + ----+--------+ | id | name   | + ----+--------+ |  1 | 刘备   | |  2 | 李四   | |  3 | 王五   | + ----+--------+

蠕虫复制

一分为二,成倍增加

从已有的数据中获取数据,并且插入到数据表中

?
1 2 3 4 5 6 7 8 9 10 11 12 13 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新增数据内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/u_13567403/5335277

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容