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中文網其他相關文章!