TDengine表名与列名是否支持特殊字符?如何配置启用?
TDengine表名/列名包含特殊字符的解决方法
不需要修改TDengine全局配置,直接使用**反引号(`)**包裹包含特殊字符的表名、列名即可正常使用,这是SQL标准规范中处理特殊标识符的通用方案。
修正后的建表语句示例
create table `server-load-1` (ts timestamp, oneline_status bool, `host-name` binary(30), `location-info` binary(45));
使用说明
- 所有包含
-、.、*等非默认允许的特殊字符,或者和SQL内置关键字重名的标识符,都需要用反引号包裹才能被TDengine正确解析 - 后续执行查询、插入、删除等操作时,涉及这些特殊标识符的位置都需要同步用反引号包裹,参考示例:
-- 插入数据示例 insert into `server-load-1` (ts, oneline_status, `host-name`, `location-info`) values (now, true, "server-001", "beijing-idc"); -- 查询数据示例 select ts, `host-name` from `server-load-1` where ts > now - 1d;
现有导入脚本无需修改原有的特殊字符转换逻辑,仅需要在生成SQL语句时,统一给所有表名、列名外层包裹反引号即可,调整成本极低。
内容的提问来源于stack exchange,提问作者GeorgeWill93
相关产品推荐
相关产品推荐

