Der PHP-Editor Banana stellt Ihnen ein häufiges Problem beim Datenbankbetrieb vor: Der Datensatztyp wird erfolgreich in die BQ-Datenbank eingefügt, die tatsächlichen Daten werden jedoch nicht eingefügt. Diese Situation kann zu Dateninkonsistenzen führen. Daher müssen wir die Ursache herausfinden und das Problem lösen. Im Folgenden werden wir die möglichen Ursachen und Lösungen detailliert beschreiben, um den Lesern zu helfen, besser mit diesem Problem umzugehen.
Ich versuche, Daten gemäß dem folgenden Beispiel in BigQuery einzufügen Text mit vorgefertigter Tabelle im Vergleich zum gegebenen Beispiel. Mein Code lautet wie folgt
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 }
Der Code wird erfolgreich ausgeführt, aber ich sehe keine eingefügten Datensätze. Die Tabellenstruktur ist wie folgt
Feldname Typ Mod Key Sortierregel Standardwert Richtlinienbezeichnung
proj_name string nullable
Etikett. Der Datensatz kann leer sein
Schlüssel. String kann leer sein Werte. String kann leer sein
Ich bin mir nicht sicher, was los ist. Wenn jemand eine Anleitung geben kann, vielen Dank.
tia Srikanth
Erwarten Sie, dass der Datensatz erfolgreich in die Tabelle eingefügt wird.
Felder sollten exportiert werden. Dieses Problem wurde zu oft gemeldet:
type taginfo struct { projname string `bigquery:"proj_name"` tags tags `bigquery:"tags"` } type tags struct { key string `bigquery:"key"` values string `bigquery:"values"` }
Siehe Dokumentation (*inserter).put< /a>:
...
Wenn src „valuesaver“ ist, wird seine Speichermethode aufgerufen, um eine Zeile zum Hochladen zu generieren.
Wenn src eine Struktur oder ein Zeiger auf eine Struktur ist, das Schema wird daraus abgeleitet und zum Erstellen des Structsaver verwendet. Die Einfügungs-ID von structsaver ist leer.
...
Dies ist ein Kommentar zu // inferFields extracts all exported field types from struct type.
func inferFields(rt reflect.Type) (Schema, error) {
Das obige ist der detaillierte Inhalt vonBQ fügt den Datensatztyp erfolgreich ein, aber es werden keine Daten eingefügt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!