Postgresql Gorm仅在条目不存在时创建

Postgresql Gorm仅在条目不存在时创建,postgresql,go,go-gorm,Postgresql,Go,Go Gorm,我有以下结构: type Project struct { gorm.Model Title string Description string Skills []Skill `gorm:"many2many:project_skills;"` } type Skill struct { gorm.Model Name string } 这就是我创建项目的方式(然后Gorm自动创建技能): 通过gorm有一种简单的方法,只

我有以下结构:

type Project struct {
    gorm.Model
    Title       string
    Description string
    Skills      []Skill `gorm:"many2many:project_skills;"`
}

type Skill struct {
    gorm.Model
    Name string
}
这就是我创建项目的方式(然后Gorm自动创建技能):

通过gorm有一种简单的方法,只有在没有同名条目的情况下才能创建技能,如果有,则返回现有条目。 因此,我将获得一系列技能,新技能和旧技能。
我希望我能解释清楚。

你有没有尝试过
FirstOrCreate()
?@AbdullahI forgat说我只创建了这个项目,而Gorm为我创造了技能。有一种方法gorm可以自动完成,或者我需要先创建技能,然后将它们附加到项目中?@NirBerko您需要在应用程序初始化期间添加所有技能一次。因此,您可以将其添加到
项目中
@iamvinitk,因此唯一的方法是在添加项目之前添加技能,然后将它们与技能关联。因此,Gorm无法使用某些结构选项自动执行此操作?您是否尝试过
first或create()
?@AbdullahI forgat说我只创建项目,而Gorm为我创建技能。有一种方法gorm可以自动完成,或者我需要先创建技能,然后将它们附加到项目中?@NirBerko您需要在应用程序初始化期间添加所有技能一次。因此,您可以将其添加到
项目中
@iamvinitk,因此唯一的方法是在添加项目之前添加技能,然后将它们与技能关联。所以Gorm无法使用某些结构选项自动执行此操作?
create := rs.Db().Create(&project)