создание новой записи в gorm
Я пытаюсь созадть модель в базе данных через GetDB().Create(&user), где GetDB возращает *gorm.DB, а user экхемпляр модели User:
type User struct {
ID uint `gorm:"primaryKey"`
Login string
Password string
}
Однако, я получаю ошибку:
cmd/db/user.go:8 UNIQUE constraint failed: users.id
Ответы (1 шт):
Автор решения: Senior Pomidor
→ Ссылка
Скорее всего, PK тоже указывается перед сохранением. Это не нужно делать. все тэги primaryKey по умолчанию являются AutoIncrement=true. можно указать тэг autoIncrement, чтобы GORM понимал ее суть. Но значение для ключа передавать не нужно.
package model
import (
`github.com/jinzhu/gorm`
)
type TestModel struct {
MyId int64 `gorm:"primary_key;auto_increment;not_null"`
Name string
}
func ModelSave(tx *gorm.DB) {
tm := TestModel{Name:"Test the model"}
tx.Save(&tm)
}
запускаем пару раз и получаем
MariaDB [gmodel]> select * from test_models;
+-------+----------------+
| my_id | name |
+-------+----------------+
| 1 | Test the model |
| 2 | Test the model |
+-------+----------------+
2 rows in set (0.000 sec)