Correct way to update a nested field or a struct in a BigQuery table.
SQL statement:
UPDATE myTable
SET Employee.name = 'some string'
WHERE id = 10
Here's my code:
ctx := context.Background()
client, err := bigquery.NewClient(ctx, projectID)
if err != nil {
return fmt.Errorf("bigquery.NewClient: %v", err)
}
defer client.Close()
q := client.Query("UPDATE myTable SET Employee.name = 'some string' WHERE id = @id ")
q.Parameters = []bigquery.QueryParameter{
{
Name: "id",
Value: 10
},
}
job, err := q.Run(ctx)
if err != nil {
return err
}
status, err := job.Wait(ctx)
if err != nil {
return err
}
if err := status.Err(); err != nil {
return err
}
How do I update this struct or nested field?
Unfortunately BigQuery does not support updating separate fields of a query or a nested field. The following syntax is not supported:
UPDATE myTable
SET Employee.name = 'some string'
WHERE id = 10
We can update structs only as a whole:
UPDATE myTable
SET Employee = STRUCT('aaa', 'bbb')
WHERE id = 10