使用标准 SQL 从命令行更新 bigquery 会引发太多位置参数



我想做非常简单的 DML 来使用标准 SQL 更新 BigQuery 中的表,但除了我正在更新的表之外,我似乎无法关联更新中的任何其他表。

update dataset.interaction set field = true 
where anotherField in (select field from dataset.anotherTable)

update dataset.interaction i 
inner join dataset.anotherTable o on o.joinField = i.joinField
set field = true;

两个查询都引发

Too many positional args, still have ['field','=','true'...]

已解决。

由于您可以将SELECT直接使用到 bq 外壳中(无需query(,我认为在使用UPDATEDELETE时我可以做同样的事情。但事实是 运行DMLs,您需要使用query并且使用命令从 shellbq query中要容易得多。

据我所知,您不能将updateinner join选项一起使用,只能使用in子句。

最新更新