mysql 批量插入

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

字段名 类型 说明
id int primary key 主键
name varchar 无 姓名

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

    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

posted on 2015-11-01 22:40  狂奔的冬瓜  阅读(212)  评论(0编辑  收藏  举报