mysql 批量插入

现在我们有一个最简单的数据表 student,只有两个字段,主键不自增

字段名类型说明
idintprimary key 主键
namevarchar无 姓名

现在我们要插入多条数据,常理就是:

    insert into student value(1,"Lucy");
    insert into student value(2,"Jack");
    insert into student value(3,"Katy");

但是生产环境中数据量过多,循环插入肯定会影响性能,mysql提供了一个很cool的语法,可以批量插入,大白话,传入”数组” 请注意区分关键字,后者是 values ,前者一条一条的插入是value;

    insert into student values(4,"Lily"),(5,"Arya"),(6,"Sansa");

        --下面是插入成功的提示信息
        --Query OK, 3 rows affected (0.06 sec)
        --Records: 3  Duplicates: 0  Warnings: 0

但是批量插入如果有重复的值呢?
这时候需要用到新的语法了,关键字 on duplicate key update

    insert into student(id,name) values(4,"Lilyy"),(5,"AryaStark"),(7,"Imp") on duplicate key update name=values(name) ;
     --抱歉 最后这个关键字是values 我写成了 value  今天才发现错误

官方文档

其他待研究的是 on duplicate key update , ignore,以及 replace …三个关键字的用法….

相关:

stackoverflow: Example

to be continued

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值