gorm操作數(shù)據(jù)庫出現(xiàn)異常
在使用gorm orm框架操作數(shù)據(jù)庫時(shí),出現(xiàn)“Error 1054 (42s22): unknown column ‘created_at’ in ‘field list’”的異常。這是因?yàn)榭蚣苌傻?a >sql語句中包含了gorm.model結(jié)構(gòu)體中的“created_at”字段,而你的表中并不存在該字段。
原因和解決方案:
這種情況一般有兩個(gè)原因:
-
原因 1:你的數(shù)據(jù)模型結(jié)構(gòu)體中包含gorm.model結(jié)構(gòu)體,而創(chuàng)建數(shù)據(jù)表時(shí)沒有同時(shí)包含gorm.model結(jié)構(gòu)體。
-
解決方案:在創(chuàng)建數(shù)據(jù)表時(shí),使用gorm的automigrate方法并同時(shí)在結(jié)構(gòu)體中包含gorm.model結(jié)構(gòu)體,例如:
db.AutoMigrate(&User{gorm.Model})
-
-
原因 2:你的新增接口的結(jié)構(gòu)體中包含gorm.model結(jié)構(gòu)體,導(dǎo)致sql語句中包含了“created_at”字段。
- 解決方案:去掉新增接口請求中的gorm.model結(jié)構(gòu)體。
gorm中的嵌入結(jié)構(gòu)體:
gorm.model結(jié)構(gòu)體是一個(gè)包含常用字段(如id、createdat和updatedat)的嵌入結(jié)構(gòu)體。通過將該結(jié)構(gòu)體嵌入到數(shù)據(jù)模型結(jié)構(gòu)體中,可以自動生成這些字段的映射。
有關(guān)gorm嵌入結(jié)構(gòu)體的更多信息,可以參考官方文檔:https://gorm.io/zh_cn/docs/models.html