dougan1884 2018-07-10 09:28
浏览 10
已采纳

如何在范围内插入记录数组

How do I insert the struct inside the range?

    //Department array (department table)
    var depValues []model.Department = []model.Department{
            model.Department{DepartmentName: "Software Analyst", DeptCode: "SA"},
            model.Department{DepartmentName: "Bussiness Analyst", DeptCode: "BA"},
    }

    for _, dep := range depValues {
            db.Create(&dep) //It's working fine
        }

Here, dep.ID return the both records id

    //Another array (employee table)
    var empValues []model.Employee = []model.Employee{
            model.Employee{EmpId: "001", EmpName: "samsung", departmentRef: dep.ID},
            model.Employee{EmpId: "002", EmpName: "Nokia", departmentRef: dep.ID},
        }

Now, I want to insert the departmentId into employee table, How can I do it, Any one can teach me.

Already Tried

It will be return duplicate values

var depValues []model.Department = []model.Department{
        model.Department{DepartmentName: "Software Analyst", DeptCode: "SA"},
        model.Department{DepartmentName: "Bussiness Analyst", DeptCode: "BA"},
    }

        for _, dep := range depValues {
            db.Create(&dep)
            //Insert into Employee
            var empValues []model.Employee = []model.Employee{
                model.Employee{EmpId: "001", EmpName: "samsung", DepRefer: dep.ID},
                model.Employee{EmpId: "002", EmpName: "Nokia", DepRefer: dep.ID},
            }

            for _, empv := range empValues {
                db.Create(&empv)
            }
        }

Database duplicate records

    '1', '2018-07-10 15:12:27', '2018-07-10 15:12:27', NULL, '001', 'samsung', '1'
    '2', '2018-07-10 15:12:28', '2018-07-10 15:12:28', NULL, '002', 'Nokia', '2'
    '3', '2018-07-10 15:12:29', '2018-07-10 15:12:29', NULL, '001', 'samsung', '1'
    '4', '2018-07-10 15:12:29', '2018-07-10 15:12:29', NULL, '002', 'Nokia', '2'
  • 写回答

1条回答 默认 最新

  • dssu33392 2018-07-10 11:12
    关注

    If I understand correctly your question , you have two variables and both of them are slice.You want to append one of them to another another :

    this is your code and result :

    func main() {
    var depValues = []Department{
        {DepartmentName: "Software Analyst", DeptCode: "SA"},
        {DepartmentName: "Bussiness Analyst", DeptCode: "BA"},
    }
    
    for _, dep := range depValues {
        fmt.Println(dep)
        var empValues = []Employee{
            {EmpId: "001", EmpName: "samsung", DepRefer: 1},
            {EmpId: "002", EmpName: "Nokia", DepRefer: 2},
        }
    
        for _, empv := range empValues {
            fmt.Println(empv)
        }
    }
    }
    

    your result

     {Software Analyst SA []}
     {001 samsung 1}
     {002 Nokia 2}
     {Bussiness Analyst BA []}
     {001 samsung 1}
     {002 Nokia 2} 
    

    And this my code and result

    type Department struct {
    DepartmentName string
    DeptCode string
    Employee []Employee
    }
    
    type Employee struct {
     EmpId string
     EmpName string
     DepRefer  int
    
    }
    
     func main() {
    
         var depValues  = []Department{
            {DepartmentName: "Software Analyst", DeptCode: "SA"},
            {DepartmentName: "Bussiness Analyst", DeptCode: "BA"},
        }
    
        var empValues  = []Employee{
            {EmpId: "001", EmpName: "samsung", DepRefer: 1},
            {EmpId: "002", EmpName: "Nokia", DepRefer: 2},
        }
    
        for _, dep := range depValues {
            dep.Employee = empValues
            fmt.Println(dep)
        }
     }
    

    and result :

    {Software Analyst SA [{001 samsung 1} {002 Nokia 2}]}
    {Bussiness Analyst BA [{001 samsung 1} {002 Nokia 2}]}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。