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 斯里坎斯
期望记录成功插入表中。
应导出字段。此类问题被报告太多次:
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< /a>:
...
如果 src 是 valuesaver,则调用其 save 方法来生成一行用于上传。
如果 src 是结构体或指向结构体的指针,则会从中推断出架构并用于创建 structsaver。 structsaver 的 insertid 将为空。
...
以上是BQ 插入记录类型成功,未插入数据的详细内容。更多信息请关注PHP中文网其他相关文章!