You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TDengine字段注释、SQL语句编写及变更数据存储规则咨询

TDengine 常见问题解答

1. TDengine是否支持为每个字段添加注释?

支持。在创建表时可通过COMMENT关键字为单个字段添加注释,语法兼容标准SQL。示例:

CREATE TABLE sensor (
    ts TIMESTAMP,
    temp FLOAT COMMENT '环境温度(摄氏度)',
    hum INT COMMENT '环境相对湿度(%)'
) TAGS (device_id INT COMMENT '设备ID');

也可后续通过ALTER TABLE修改字段注释:

ALTER TABLE sensor MODIFY COLUMN temp FLOAT COMMENT '修正后环境温度(摄氏度)';

2. 如何编写支持SQL规范的语句?

TDengine兼容ANSI SQL核心语法,遵循以下原则即可保证兼容性:

  • 优先使用标准SQL基础语法,SELECT/INSERT/CREATE TABLE等核心操作写法与标准完全一致
  • 仅在必要时使用TDengine时序扩展语法(如TAGS/WINDOW),避免过度依赖非标准特性
  • 对TDengine独有的快捷语法,可替换为标准SQL等价写法,例如:
    非标准写法:SELECT LAST * FROM sensor WHERE device_id = 1001;
    标准等价写法:SELECT * FROM sensor WHERE device_id = 1001 ORDER BY ts DESC LIMIT 1;

标准SQL风格示例语句:

-- 标准插入
INSERT INTO sensor (ts, temp, hum) VALUES ('2024-05-20 10:00:00', 26.3, 42);
-- 标准查询
SELECT ts, temp FROM sensor WHERE device_id = 1001 AND ts BETWEEN '2024-05-20 00:00:00' AND '2024-05-20 12:00:00';

3. TDengine是否仅存储变更数据,即当采集的数据与数据库中已存储的上一次值相同时,不会执行写入操作?

TDengine默认不自动跳过重复值,只要写入语句合法,所有数据都会被存储。若需实现仅存储变更数据的需求,可通过两种方式处理:

  • 客户端侧过滤:写入前查询对应设备最新记录,对比当前数据,仅当值变化时发起写入请求
  • 服务端侧过滤:利用TDengine流处理(Stream)功能创建过滤重复值的流,将处理后的数据写入目标表;或使用2.0及以上版本支持的UPSERT语法(需结合业务逻辑调整,UPSERT为更新/插入而非直接跳过重复)

内容的提问来源于stack exchange,提问作者Sun Hong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 03:48:15