Rumah > pembangunan bahagian belakang > Golang > BQ berjaya memasukkan jenis rekod, tetapi tiada data dimasukkan

BQ berjaya memasukkan jenis rekod, tetapi tiada data dimasukkan

PHPz
Lepaskan: 2024-02-09 15:40:18
ke hadapan
1139 orang telah melayarinya

BQ 插入记录类型成功,未插入数据

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.

Kandungan soalan

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
}
Salin selepas log masuk

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.

Penyelesaian

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"`
}
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan