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

如何在TDengine中更新单行的部分列而非整行数据?

TDengine 部分列更新操作方法
  • 首先确认你使用的 TDengine 版本为 2.2.0.0 及以上,更早版本不支持部分列更新能力。
  • 部分列更新需要先将数据库的 update 参数设置为 2,不同场景配置方式如下:
    • 新建数据库时直接指定参数:
      CREATE DATABASE your_db_name UPDATE 2;
      
    • 已创建的数据库可以通过修改命令调整:
      ALTER DATABASE your_db_name UPDATE 2;
      

补充说明:数据库 update 参数的三个取值对应不同的更新能力:0 表示不允许任何更新,1 表示仅允许整行覆盖更新,2 表示支持部分列更新。

具体更新操作

你只需要在写入语句中指定主键时间戳ts + 需要更新的列即可,未指定的列会保留原有值,不会被覆盖。

举个实际场景示例:假设你有一个子表 d1001,包含时间戳主键 ts,以及三个数据列 current、voltage、temperature,现在仅需要更新 ts='2024-01-01 00:00:00' 这一行的 voltage 值为225,其余列保持原有值不变,写入语句如下:

INSERT INTO d1001 (ts, voltage) VALUES ('2024-01-01 00:00:00', 225);

注意事项

  • 必须携带主键时间戳 ts 用来定位需要更新的目标行。
  • 如果指定的时间戳对应的行不存在,该操作会自动插入一条新行,未指定的列会默认填充为空值。
  • 超级表场景下不需要传入标签列,更新操作不会修改标签的值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:15:01