AWS Athena跨库查询报错:含连字符数据库名无法识别
解决AWS Athena中带连字符数据库名的查询语法错误
问题根源
Athena基于Presto SQL引擎,对于包含连字符这类特殊字符的标识符(数据库名、表名),不能直接书写,也不能用单/双引号包裹(单双引号仅用于定义字符串常量),必须使用*反引号(`)*来转义这类特殊标识符。
修正后的查询语句
你需要将带连字符的数据库名(以及必要时的表名)用反引号包裹,以下两种写法都有效:
写法一:分别包裹数据库名和表名
SELECT cust_id, substr(zipcode, 1, 4) AS postcode FROM `link-prod-business-core-datasets-gold-pii-public-pub`.`customer_pii_full`
写法二:仅包裹带特殊字符的数据库名
SELECT cust_id, substr(zipcode, 1, 4) AS postcode FROM `link-prod-business-core-datasets-gold-pii-public-pub`.customer_pii_full
注意事项
- 反引号是SQL标准中用于转义特殊标识符的语法,Athena完全兼容该规则。
- 单引号和双引号在Athena中仅用于表示字符串值,无法用来转义标识符,这也是你之前尝试无效的核心原因。
内容的提问来源于stack exchange,提问作者Jorn Joosten
相关产品推荐
相关产品推荐

