Проблема при создании первичного ключа из модели gorm - PullRequest
0 голосов
/ 24 июня 2019

При создании первичного ключа из модели gorm возвращается с ошибкой «дублирующее имя столбца:« id »»

моя модель выглядит как

type User struct { 
gorm.Model 
Id string gorm:"primary_key;" 
FirstName string 
LastName string 
}

любая идея, с чем связана проблема вышемодель

1 Ответ

1 голос
/ 24 июня 2019

Горм использует по умолчанию ID в качестве первичного ключа. Это часть gorm.Model, которую вы встраиваете.

При встраивании gorm.Model вы должны опустить ID, поскольку gorm уже включает его. Альтернатива - удалить встроенный gorm.Model и указать ID самостоятельно.

Процитирую соглашения Горм стр:

gorm.Model - это базовая структура GoLang, которая включает в себя следующее поля: ID, CreatedAt, UpdatedAt, DeletedAt. * ​​1020 *

Он может быть встроен в вашу модель или вы можете построить свою собственную модель без него.

Причиной сбоя при создании схемы в отличие от компиляции является то, что многие базы данных (включая CockroachDB) выполняют проверку без учета регистра, если вы не заключаете в кавычки имена объектов (Id соответствует id, а "Id" - нет) , Это приводит к двум отдельным именам столбцов, которые совпадают по сравнению с регистронезависимостью.

...