首页 > 解决方案 > gorm 是否支持同一字段上的多个索引?

问题描述

type ABCUser struct {
    ID    uint   `json:"id" gorm:"primary_key" `
    Name  string `json:"name" gorm:"index:name_filter"`
    Age   string `json:"foreign_name" gorm:"index:age_filter"`
    Place string `json:"node_id" gorm:"index:place_filter"`
    Class string `gorm:"index:name_filter;index:age_filter;index:place_filter"`
}

//calling migration like 
db.AutoMigrate(&ABCUser{})

gorm 日志(在 // 之后由我添加评论)

[2021-03-02 17:21:10]  [16.73ms]  CREATE TABLE `abc_users` (`id` int unsigned AUTO_INCREMENT,`name` varchar(255),`age` varchar(255),`place` varchar(255),`class` varchar(255) , PRIMARY KEY (`id`))  
[0 rows affected or returned ] 

[2021-03-02 17:21:10]  [13.97ms]  CREATE INDEX name_filter ON `abc_users`(`name`)   
[0 rows affected or returned ] 

[2021-03-02 17:21:11]  [17.93ms]  CREATE INDEX age_filter ON `abc_users`(`age`)   
[0 rows affected or returned ] // not expected want `abc_users`(`age`, `class`)   

[2021-03-02 17:21:11]  [11.80ms]  CREATE INDEX place_filter ON `abc_users`(`place`, `class`)   
[0 rows affected or returned ] // not expected want `abc_users`(`place`, `class`)
PASS

我做错了什么还是超出了gorm的范围?

标签: mysqlgogo-gorm

解决方案


推荐阅读