postgresql之插入数据库时如何忽略嵌入式结构字段
熊孩纸
阅读:248
2025-06-02 22:19:02
评论:0
我有2个数据库表;
A有3列,分别是X,Y,Z
B有2列,分别是X,W
我的Go结构是这样的;
type Base struct {
X int
Y int
}
type A struct {
Base
Z int
}
type B struct {
Base
W int
}
然后像这样初始化我的结构;
a := A{Base: Base{X: 1, Y:2}, Z: 3}
b := B{Base: Base{X: 1}, W: 4}
当我想使用gorm.io ORM将这些插入数据库时,插入“a”没有任何问题,但是无法插入“b”,因为postgresql给我一个类似的错误
pq: column "y" of relation "B" does not exist
如何在不创建另一个没有“Y”字段的基本模型的情况下将“b”插入数据库?
请您参考如下方法:
当您将结构分配给另一个结构并创建该结构的实例时,所有结构字段均已填充为它们的默认数据类型值。
例如:int的默认值为0。
因此,您对此问题有2个解决方案。
Base结构),仅A和B。像这样:(也许您知道这个解决方案。)。 type A struct {
X int
Y int
Z int
}
type B struct {
X int
W int
}
struct tags防止使用gorm插入。 注意:我没有测试过。
type Base struct {
X int
Y int `json:"y,omitempty"`
}
type A struct {
Base
Z int
}
type B struct {
Base
W int
}
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



