我有一个查询生成用于插入表格的行。查询引用不同项目中的表。项目名称包括连字符(例如abc-xyz)。当我尝试使用bq命令并使用`来包含项目名称时,我得到错误,如果我不这样做,我会收到错误,如果我尝试单引号或双引号或括号仍然会出错。有没有办法在使用bq命令的查询中引用其名称中带有连字符的另一个项目?
这是我运行示例命令时得到的结果:
bq query --use_legacy_sql = false“从abc-xyz
选择account_id,max(已更新)max_updated,max(_PARTITIONTIME)max_pt。myset.mytable group by 1”
-bash:abc-xyz:找不到命令
当我在UI中复制并粘贴相同的查询strin时,它可以正常工作。
由于
答案 0 :(得分:2)
理想情况下,您应该将整个表引用括在后面 - 不仅仅是项目本身
所以,而不是
`abc-xyz`.myset.mytable
尝试
`abc-xyz.myset.mytable`
答案 1 :(得分:1)
除了Mikhail的建议外,如果您的查询中的内容与Bash语法(例如引号和美元符号)冲突,则另一种方法是将查询放入文件中,例如: my_query.sql
,然后运行:
bq query --use_legacy_sql=false < my_query.sql
这会将文件的未修改内容传送到bq
工具。