Как я могу установить COLLATION поля в utf8_general_ci с GORM?

Я хотел бы иметь поле типа строки в базе данных MySQL, которое не учитывает регистр и уникально. Я использовал следующую модель:

type User struct {
    Id             int64  `json:"id" sql:"AUTO_INCREMENT"`
    Email          string `json:"email" sql:"unique_index"`
}

что делает Email уникальный, но

type User struct {
    Id             int64  `json:"id" sql:"AUTO_INCREMENT"`
    Email          string `json:"email" sql:"unique_index;COLLATION(utf8_general_ci)"`
}

кажется, не имеет никакого эффекта.

Как я могу установить COLLATION поля в utf8_general_ci с GORM?

1 ответ

Решение

Вы можете использовать тег sql в поле, которое хотите изменить, например:

type User struct {
    gorm.Model
    Name `sql:"type:VARCHAR(5) CHARACTER SET utf8 COLLATE utf8_general_ci"`
}
Другие вопросы по тегам