php小编香蕉向大家介绍一种常见的数据库操作问题,即在BQ数据库中插入记录类型成功却未插入实际数据的情况。这种情况可能会导致数据不一致,因此我们需要找出原因并解决该问题。在下文中,我们将详细介绍可能的原因和解决方案,以帮助读者更好地处理这个问题。
问题内容
我正在尝试按照以下示例将数据插入 bigquery 与给定示例相比,带有预先创建的表格的文本。 我的代码如下
type tagInfo struct { proj_name string `bigquery:"proj_name"` Tags Tags `bigquery:"tags"` } type Tags struct { key string `bigquery:"key"` values string `bigquery:"values"` } func insertData() error { prjName := "prjName" datasetID := "DSName" tableID := "TName" ctx := context.Background() client, err := bigquery.NewClient(ctx, prjName) if err != nil { return fmt.Errorf("Bigquery.NewClient: %w", err) } defer client.Close() item := &tagInfo{ proj_name: "Devil", Tags: Tags{ key: "engcontact", values: "Meryl Streep", }, } fmt.Printf("Item is: %s", item) items := []*tagInfo{item} table := client.Dataset(datasetID).Table(tableID) inserter := table.Inserter() err = inserter.Put(ctx, items) if err != nil { if multiErr, ok := err.(bigquery.PutMultiError); ok { for _, putErr := range multiErr { fmt.Printf("failed to insert row %d with err: %v \n", putErr.RowIndex, putErr.Error()) fmt.Println(putErr.Errors) } } return err } return nil }
代码运行成功,但我没有看到插入任何记录。 表结构如下
字段名称 类型 mod 键排序规则 默认值 策略标签
proj_name string nullable
标签。记录可为空
钥匙。字符串可为空 价值观。字符串可为空
不知道哪里出了问题,如果有人可以提供指导,非常感谢。
tia 斯里坎斯
期望记录成功插入表中。
解决方法
应导出字段。此类问题被报告太多次:
- json:json.marshal(struct) 返回“{}”
- bson:在 golang 中的 mongodb 中插入结构
- yaml:将 yaml 解组到结构中
- toml:无法读取 toml使用 go 和 burntsushi 库创建文件
type taginfo struct { projname string `bigquery:"proj_name"` tags tags `bigquery:"tags"` } type tags struct { key string `bigquery:"key"` values string `bigquery:"values"` }
请参阅文档 (*inserter).put:
...
如果 src 是 valuesaver,则调用其 save 方法来生成一行用于上传。
如果 src 是结构体或指向结构体的指针,则会从中推断出架构并用于创建 structsaver。 structsaver 的 insertid 将为空。
...
以上是BQ 插入记录类型成功,未插入数据的详细内容。更多信息请关注PHP中文网其他相关文章!

Golangisidealforbuildingscalablesystemsduetoitsefficiencyandconcurrency,whilePythonexcelsinquickscriptinganddataanalysisduetoitssimplicityandvastecosystem.Golang'sdesignencouragesclean,readablecodeanditsgoroutinesenableefficientconcurrentoperations,t

Golang在并发性上优于C ,而C 在原始速度上优于Golang。1)Golang通过goroutine和channel实现高效并发,适合处理大量并发任务。2)C 通过编译器优化和标准库,提供接近硬件的高性能,适合需要极致优化的应用。

选择Golang的原因包括:1)高并发性能,2)静态类型系统,3)垃圾回收机制,4)丰富的标准库和生态系统,这些特性使其成为开发高效、可靠软件的理想选择。

Golang适合快速开发和并发场景,C 适用于需要极致性能和低级控制的场景。1)Golang通过垃圾回收和并发机制提升性能,适合高并发Web服务开发。2)C 通过手动内存管理和编译器优化达到极致性能,适用于嵌入式系统开发。

Golang在编译时间和并发处理上表现更好,而C 在运行速度和内存管理上更具优势。1.Golang编译速度快,适合快速开发。2.C 运行速度快,适合性能关键应用。3.Golang并发处理简单高效,适用于并发编程。4.C 手动内存管理提供更高性能,但增加开发复杂度。

Golang在Web服务和系统编程中的应用主要体现在其简洁、高效和并发性上。1)在Web服务中,Golang通过强大的HTTP库和并发处理能力,支持创建高性能的Web应用和API。2)在系统编程中,Golang利用接近硬件的特性和对C语言的兼容性,适用于操作系统开发和嵌入式系统。

Golang和C 在性能对比中各有优劣:1.Golang适合高并发和快速开发,但垃圾回收可能影响性能;2.C 提供更高性能和硬件控制,但开发复杂度高。选择时需综合考虑项目需求和团队技能。

Golang适合高性能和并发编程场景,Python适合快速开发和数据处理。 1.Golang强调简洁和高效,适用于后端服务和微服务。 2.Python以简洁语法和丰富库着称,适用于数据科学和机器学习。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)