登录
首页 >  Golang >  Go问答

model.ModelName 缺少目标字段 u.shake_hands_id

来源:stackoverflow

时间:2024-03-28 19:36:26 262浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《model.ModelName 缺少目标字段 u.shake_hands_id》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

当我尝试从数据库中的一些数据中选择 tx.select 时,出现此错误。

*[]*model.modelname 中缺少目标名称 u.shake_hands_id

我的查询是这样的:

select u.shake_hands_id as "u.shake_hands_id",u.model_id as "u.model_id" 
from enquiry_interest u 
where u.shake_hands_id=$1

我的结构就像

type ShakesHandsModels struct {
    ShakeHandsId uuid.UUID `db:"shake_hands_id"`
    ModelId      string    `db:"model_id"`
}

解决方案


您的查询:

select u.shake_hands_id as "u.shake_hands_id",u.model_id as "u.model_id" 
...

不会生成名为 shake_hands_idmodel_id 的列,如 struct 指定的那样。别名周围的双引号告诉 postgresql 命名别名 u.shake_hands_idu.model_id (即 . 是别名的一部分,而不是充当分隔符)。您根本不需要别名,这:

select u.shake_hands_id, u.model_id 
from enquiry_interest u 
where u.shake_hands_id = $1

就可以了:

select shake_hands_id, model_id 
from enquiry_interest
where shake_hands_id = $1

如果由于某种原因您必须使用别名,那么就不用担心引号:

select u.shake_hands_id as shake_hands_id, u.model_id as model_id
from enquiry_interest u 
where u.shake_hands_id = $1

或者确保您只引用正确的内容:

SELECT u.shake_hands_id as "shake_hands_id", u.model_id as "model_id"
FROM enquiry_interest u 
WHERE u.shake_hands_id = $1

但实际上,除非您确实需要,否则根本不要使用引号。

到这里,我们也就讲完了《model.ModelName 缺少目标字段 u.shake_hands_id》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>