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

BQ berjaya memasukkan jenis rekod, tetapi tiada data dimasukkan

PHPz
PHPzke hadapan
2024-02-09 15:40:181043semak imbas

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
}

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"`
}

Lihat dokumentasi (*inserter).put:

...

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

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam