editor php Banana akan memperkenalkan kepada anda masalah operasi pangkalan data yang biasa, iaitu jenis rekod berjaya dimasukkan ke dalam pangkalan data BQ tetapi data sebenar tidak dimasukkan. Keadaan ini mungkin menyebabkan data tidak konsisten, jadi kita perlu mengetahui punca dan menyelesaikan masalah tersebut. Dalam perkara berikut, kami akan memperincikan kemungkinan punca dan penyelesaian untuk membantu pembaca menangani masalah ini dengan lebih baik.
Saya cuba memasukkan data ke dalam pertanyaan besar seperti contoh berikut Teks dengan jadual pra-dicipta berbanding contoh yang diberikan. Kod saya adalah seperti berikut
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 }
Kod berjalan dengan jayanya tetapi saya tidak nampak sebarang rekod dimasukkan. Struktur jadual adalah seperti berikut
Nama medan jenis mod kunci pengisihan peraturan label dasar nilai lalai
rentetan nama_proj boleh batal
Label. Rekod boleh kosong
kunci. Rentetan boleh kosong nilai. Tali boleh kosong
Tak pasti apa salahnya, kalau ada yang boleh bagi tunjuk ajar, terima kasih banyak-banyak.
tia Srikanth
Dijangkakan rekod berjaya dimasukkan ke dalam jadual.
Lapangan harus dieksport. Isu ini telah dilaporkan terlalu banyak kali:
type taginfo struct { projname string `bigquery:"proj_name"` tags tags `bigquery:"tags"` } type tags struct { key string `bigquery:"key"` values string `bigquery:"values"` }
Lihat dokumentasi (*inserter).put< /a>:
...
Jika src ialah valuesaver, kaedah simpannya dipanggil untuk menjana baris untuk muat naik.
Jika src ialah struct atau penunjuk kepada struct, skema disimpulkan daripadanya dan digunakan untuk mencipta structsaver. Sisipan structsaver akan kosong.
...
Ini ialah ulasan pada // inferFields extracts all exported field types from struct type.
func inferFields(rt reflect.Type) (Schema, error) {
Atas ialah kandungan terperinci BQ berjaya memasukkan jenis rekod, tetapi tiada data dimasukkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!