使用 Gorm 新增数据时遇到 “Unknown column 'created_at' in 'field list'” 错误,如何解决?

使用 gorm 新增数据时遇到 “unknown column 'created_at' in 'field list'” 错误,如何解决?

gorm操作数据库异常?

问题描述:
使用gorm时遇到错误:error 1054 (42s22): unknown column 'created_at' in 'field list'。这个错误表明框架中自带的字段导致了新增异常。

解决方案:
此问题可能是因为下列原因造成的:

  • 创建表时未包含gorm.model结构体。
  • 新增结构中包含gorm.model,而创建表时未包含。

有两种解决方案:

  1. 移除新增接口结构中的gorm.model
    如果你在新增接口的结构体中使用了gorm.model,将其删除即可。
  2. 使用automigrate方法建表,并添加gorm.model到结构体中
    在创建表时,可以使用gorm提供的automigrate方法,同时将gorm.model添加到结构体中。

例如:

package main

import (
    "fmt"
    "gorm.io/gorm"
)

type User struct {
    gorm.Model
    Name string
    Email string
}

func main() {
    db, err := gorm.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database?charset=utf8mb4&parseTime=True&loc=Local")
    if err != nil {
        panic(err)
    }
    // 创建表
    if err := db.AutoMigrate(&User{}); err != nil {
        panic(err)
    }
    
    // 查询所有用户
    var users []User
    if err := db.Find(&users).Error; err != nil {
        panic(err)
    }
    fmt.Println(users)
}

有关嵌套结构体的更多信息,请参阅gorm文档:https://gorm.io/zh_cn/docs/models.html

以上就是使用 Gorm 新增数据时遇到 “Unknown column 'created_at' in 'field list'” 错误,如何解决?的详细内容,更多请关注其它相关文章!