gpt4 book ai didi

sql - 为什么在 gorm 等 go 库中使用 struct 中的 sql 标签?

转载 作者:IT老高 更新时间:2023-10-28 13:09:26 33 4
gpt4 key购买 nike

我知道 golang 中 struct 中标签的必要性,以及 golang 中的反射如何访问它。但是我已经搜索并找不到可靠的答案来回答为什么在为 sql 结果编写 struct 时应该在 struct 中使用 sql 标签。我探索了许多示例代码,人们在结构中使用 sql:"index" 并在结构中使用 sql:"primary_key"

现在我已经在数据库层做了索引,还不够吗?我是否也必须使用 sql:"index" 才能获得最佳结果?像这样我已经在数据库中定义了主键属性,我应该也指定 sql:"primary_key" 吗?

没有这些,我的代码似乎可以正常工作。只是想知道它们的好处和用途。

最佳答案

我认为您指的是像 gorm 这样的 ORM 库。

在这种情况下,像 sql:"primary_key"sql:"index" 这样的元数据只会告诉 ORM 在尝试设置表时创建索引或也许迁移它们。

gorm 中的几个示例可能是:索引、主键、外键、many2many 关系或尝试将现有架构调整到您的 gorm 时模型,明确设置类型,例如:

type Address struct {
ID int
Address1 string `sql:"not null;unique"` // Set field as not nullable and unique
Address2 string `sql:"type:varchar(100);unique"`
Post sql.NullString `sql:"not null"`
}

关于sql - 为什么在 gorm 等 go 库中使用 struct 中的 sql 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33847013/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com