在命令行中更新biq查询中的表数据

时间:2018-05-08 13:28:26

标签: google-bigquery

我正在尝试更新满足条件的Big查询表。我在命令行中尝试通过错误

bq update `project_d.data_set.table_name`set field1='1011' , field2='201' , field3='2001' where id='7001'

但我在命令提示符中遇到错误,如

Too many positional args, still have [',', 'field2=201', ',', 'field3=2001', 'where', 'id', '=7001']

请帮我解决这个问题

2 个答案:

答案 0 :(得分:1)

bq update更新表的属性,例如其到期时间。如果您要运行UPDATE查询,请使用bq query。将以下内容(替换您的项目,数据集和表名称)放入一个名为eg的文件中。 query.sql

UPDATE `project_d.data_set.table_name`
SET
  field1 = '1011',
  field2 = '201',
  field3 = '2001'
WHERE id = '7001'

现在使用该文件作为输入运行bq query

bq query --use_legacy_sql=false < query.sql

答案 1 :(得分:0)

除了使用外部 sql 文件,您只需添加 --use_legacy_sql=false

bq query --use_legacy_sql=false 'update dataset.table SET id=id*100 where id>100'