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

Go 如何在范围内插入记录数组,go,go-gorm,Go,Go Gorm,如何在范围内插入结构 //Department array (department table) var depValues []model.Department = []model.Department{ model.Department{DepartmentName: "Software Analyst", DeptCode: "SA"}, model.Department{DepartmentName: "Business A

如何在范围内插入结构

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

    for _, dep := range depValues {
            db.Create(&dep) //It's working fine
        }
这里,
dep.ID
返回两条记录
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},
        }
现在,我想把
departmentId
插入
employee
表,我该怎么做,任何人都可以教我

已尝试过

它将返回重复的值

var depValues []model.Department = []model.Department{
        model.Department{DepartmentName: "Software Analyst", DeptCode: "SA"},
        model.Department{DepartmentName: "Business 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)
            }
        }
数据库重复记录

    '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'

如果我正确理解您的问题,您有两个变量,它们都是slice。您希望将其中一个附加到另一个:

这是您的代码和结果:

func main() {
var depValues = []Department{
    {DepartmentName: "Software Analyst", DeptCode: "SA"},
    {DepartmentName: "Business 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)
    }
}
}
{Software Analyst SA [{001 samsung 1} {002 Nokia 2}]}
{Business Analyst BA [{001 samsung 1} {002 Nokia 2}]}
你的结果

 {Software Analyst SA []}
 {001 samsung 1}
 {002 Nokia 2}
 {Business Analyst BA []}
 {001 samsung 1}
 {002 Nokia 2} 
这是我的代码和结果

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: "Business 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)
    }
 }
结果:

func main() {
var depValues = []Department{
    {DepartmentName: "Software Analyst", DeptCode: "SA"},
    {DepartmentName: "Business 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)
    }
}
}
{Software Analyst SA [{001 samsung 1} {002 Nokia 2}]}
{Business Analyst BA [{001 samsung 1} {002 Nokia 2}]}

实际发生了什么?你期望发生什么?请将这些信息添加到您的问题中。为什么要将员工的循环嵌套在部门的循环中?请确保您正在设置ID或任何模型。部门级别属性,该ID是否为接口{},因为我需要部门ID,所以在循环@leadbebobpi中使用的员工无法正确理解您。你能提供一些想要的输出吗?