无法使用Go/SQLX找到存在的结构属性
我正在从文件上传中收集元数据,并将其插入到DB表中。结构如下所示:无法使用Go/SQLX找到存在的结构属性,go,sqlx,Go,Sqlx,我正在从文件上传中收集元数据,并将其插入到DB表中。结构如下所示: // file Metadata struct type MetaData struct { Owner string FileRows int64 FileSize string FileName string FileUuid string LastUpdated string } 下面是我如何填充对结构的引用: metaDataRow :
// file Metadata struct
type MetaData struct {
Owner string
FileRows int64
FileSize string
FileName string
FileUuid string
LastUpdated string
}
下面是我如何填充对结构的引用:
metaDataRow := MetaData{
Owner: "Fake Name",
FileRows: (int64)(count - 1),
FileSize: fileSize,
FileName: fileName,
FileUuid: handle,
LastUpdated: time.Now().Format(time.RFC822Z),
}
我的问题是,当我尝试将此struct ref插入数据库时,会收到一条错误消息:
在&processor.MetaData中找不到名称所有者{Owner:“假名称”,FileRows:1499,FileSize:“308.9 kB”,FileName:“small file.csv”,FileUuid:“1234567890qwerty”,最后更新:“30 Jan 20 21:13+0000”}
现在,我们可以清楚地看到,Owner
存在于结构中,它和其他结构一样有一个值。我不确定查询分配是否在第一次查找时失败,是否出现了panic
'd,但我无法通过这一点来查看其他查询分配是否也失败。这是我的sqlx
NamedExec
,因为我的结构引用或绑定可能有问题
// execute transaction
_, err = tx.NamedExec(`
INSERT INTO file_metadata (
owner,
file_rows,
file_size,
file_name,
file_uuid,
last_updated
) VALUES (
:Owner,
:FileRows,
:FileSize,
:FileName,
:FileUuid,
:LastUpdated
)
`, &metaDataRow)
我希望这是一个简单的修复,边界输入错误。您可以将
db标记添加到您的结构中:
Owner string `db:"owner"`
然后在插页上:
...VALUES (:owner, ....
您是否尝试过定义db选项卡
?类似这样的内容:Owner字符串`db:'Owner`
然后插入:…值(:Owner,.
哦,我的天啊,我很笨。谢谢,这就是我缺少的。很高兴能帮上忙,我会把它作为答案发布,你能标记一下吗