Не удалось обновить строки в "jinzhu / gorm" pkg - PullRequest
0 голосов
/ 17 апреля 2020

Мне нужно обновить значение полей в нескольких строках.

Я запрашиваю некоторые строки базы данных, но это не работает.

DB.Where("is_send = ?", "0").Find(&artists)

for _, artist := range artists {
    if condition {
    artist.IsSend = 1
    ... (more updatee)
    DB.Save(&artist)
    }
}

1 Ответ

0 голосов
/ 17 апреля 2020

Измените его диапазон, используя приведенный ниже пример:

for _, elem := range elems {
    elem = new_val      // Won't work, because elem is a copy of 
                        // the value from elems
}

for i := range elems {
    elems[i] = new_val  // Works, because elems[i] deferences 
                        // the pointer to the actual value in elems
}

Чтение: Gotchas

Кроме того, если вы не изменяете все поля, вместо Save вы также можете использовать Update. См .: ОБНОВЛЕНИЕ интерфейса GORM CRUD

...