gorm批量插入数据

最近用 gin+mysql编写web工程,其中使用了gorm库对数据库进行操作。由于gorm目前暂未提供 批量插入方法,推荐使用原sql语句批量插入数据。

参考链接

  • gorm中文文档:https://jasperxu.github.io/gorm-zh/
  • mysql批量更新与插入相关博客:https://blog.yumaojun.net/2017/06/19/mysql-performance-for-bulk-action/

批量插入mysql数据

// 声明project_pics数据表结构
type ProjectPic struct {
    Id        int    `json:"id"`
    ProjectId int    `json:"project_id"`
    Url       string `json:"url"`
    Type      string `json:"type"`
}
func AddProjectPics(data []string, project_pic_type string, project_id int) bool {
    sql := "INSERT INTO `project_pics` (`project_id`,`url`,`type`) VALUES "
// 循环data数组,组合sql语句
    for key, value := range data {
        if len(data)-1 == key {
//最后一条数据 以分号结尾
            sql += fmt.Sprintf("(%d,'%s','%s');", project_id, value, project_pic_type)
        } else {
            sql += fmt.Sprintf("(%d,'%s','%s'),", project_id, value, project_pic_type)
        }
    }
    db.Exec(sql)
    return true
}

效果

image.png

你可能感兴趣的:(gorm批量插入数据)