при вставке данных с помощью gorm проверка не существует - PullRequest
0 голосов
/ 12 июня 2019

Я использую Горм. Я хочу вставить значение, пока не существует то же значение

точно так же как сырой 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)

    }
}

когда найдено то же значение, я хочу сообщение или сообщение об ошибке

1 Ответ

0 голосов
/ 17 июня 2019

FirstOrCreate

Получить первую найденную запись или инициализировать новую запись с заданными условиями (работает только со структурами, условиями карты)

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