我有一个查询,可以生成要插入到表中的行。 查询引用不同项目中的表。 项目名称包括连字符(例如 abc-xyz(。 当我尝试使用 bq 命令并使用 ' 将项目名称括起来时,我会收到错误,如果我不这样做,我会收到错误,如果我尝试单引号或双引号或括号仍然会出错。 有没有办法使用 bq 命令在查询中引用名称中包含连字符的另一个项目?
以下是我在运行示例命令时得到的内容:
bq query --use_legacy_sql=false "选择 account_id, max(update( max_updated, max(_PARTITIONTIME( max_pt from abc-xyz
.myset.mytable group by 1">
bash:abc-xyz:找不到命令
当我在 UI 中复制并粘贴相同的查询链时,它工作正常。
谢谢
理想情况下,您应该将整个表引用括在反引号中 - 而不仅仅是项目本身
所以,而不是
`abc-xyz`.myset.mytable
尝试
`abc-xyz.myset.mytable`
除了 Mikhail 的建议之外,如果您的查询中有与 Bash 语法冲突的内容(例如引号和美元符号(,另一种方法是将查询放在文件中,例如 my_query.sql
,然后运行:
bq query --use_legacy_sql=false < my_query.sql
这会将文件的未修改内容通过管道传输到bq
工具。