BigQuery创建临时表报Temporary tables may not be qualified错误
报错原因
BigQuery里的临时表是绑定当前查询会话的特殊资源,不归属于任何项目下的数据集,语法层面明确禁止给临时表加项目、数据集这类路径限定符。
你写的语句里给临时表加了mss.Business.的数据集前缀,正好违反这个规则,就抛出了Temporary tables may not be qualified的错误,报错里标注的[2:36]位置,就是你写带限定符的临时表名的位置。
修复方法
直接删掉临时表名前面的所有路径限定前缀即可。临时表不需要指定持久化存储的数据集位置,当前会话运行期间可以直接通过表名调用,会话结束后会自动删除,不会落到你实际的业务数据集里。
修正后的可正常执行的SQL如下:
create or replace temporary table test2 as select * from mss.Business.registration
- 注意:后续在同一会话里查询这个临时表,直接写
test2即可,不要加任何数据集前缀,它不会持久保存在mss.Business数据集下。
内容的提问来源于stack exchange,提问作者Nagendra
相关产品推荐
相关产品推荐

