У меня есть программа go, подключенная к таблице больших запросов.Это схема таблицы:
name STRING NULLABLE
age INTEGER NULLABLE
amount INTEGER NULLABLE
Мне удалось запросить данные этой таблицы и распечатать все строки на консоли с этим кодом:
ctx := context.Background()
client, err := bigquery.NewClient(ctx, projectID)
q := client.Query("SELECT * FROM test.test_user LIMIT 1000")
it, err := q.Read(ctx)
if err != nil {
log.Fatal(err)
}
for {
var values []bigquery.Value
err := it.Next(&values)
if err == iterator.Done {
break
}
if err != nil {
// TODO: Handle error.
}
fmt.Println(values)
}
И мне также удалосьвставить данные в таблицу из структуры, используя этот код:
type test struct {
Name string
Age int
Amount int
}
u := client.Dataset("testDS").Table("test_user").Uploader()
savers := []*bigquery.StructSaver{
{Struct: test{Name: "Jack", Age: 23, Amount:123}, InsertID: "id1"},
}
if err := u.Put(ctx, savers); err != nil {
log.Fatal(err)
}
fmt.Printf("rows inserted!!")
Теперь я не могу обновить строки.Что я хочу сделать, это выбрать все строки и обновить все их с помощью операции (например: сумма = сумма * 2)
Как я могу добиться этого с помощью golang?