登录
首页 >  Golang >  Go问答

在使用gorm插入数据时,确保唯一性

来源:stackoverflow

时间:2024-03-23 17:42:32 163浏览 收藏

在使用 GORM 进行数据插入时,确保唯一性至关重要。本文探讨了如何实现类似于原始 SQL 中 `INSERT...SELECT...WHERE NOT EXISTS` 语句的功能,该语句可以根据唯一键插入新数据或返回一条消息或错误消息。本文将介绍 GORM 中的 `FirstOrCreate` 方法,它允许在不存在匹配记录的情况下插入一条新记录,或者在存在匹配记录的情况下获取该记录。

问题内容

我正在使用 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"})

今天关于《在使用gorm插入数据时,确保唯一性》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>