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