使用 gorm 插入数据时,检查不存在相同的内容



我正在使用gorm。我想插入值,但不存在相同的值

就像原始 SQL 一样。


INSERT INTO student (firstname, lastname)
SELECT 'NEW FIRSTNAME', 'NEW LASTNAME'
FROM DUAL
WHERE NOT EXISTS(
    SELECT 1
    FROM table_name
    WHERE firstname = 'NEW FIRSTNAME' AND lastname = 'NEW LASTNAME'
)
LIMIT 1;

如何使用 gorm 实现此功能

type Student struct {
    Firstname string
    Lastname string
}
func insert()  {
    stu :=Student{"fir","la"}
    if res := DB.Create(&stu).Or("some condition"); res.Error != nil {
        logrus.Println(res.Error)
    }
}

当找到相同的值时,我想要一条消息或错误消息

FirstOrCreate

获取第一个匹配的记录,或使用给定条件启动一个新记录(仅适用于结构,映射条件(

db.FirstOrCreate(&user, User{Name: "non_existing"})

相关内容

  • 没有找到相关文章

最新更新