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

是否存在用于指定「保持列值不变」的SQL关键字?

如何在UPDATE语句中指定列保持原值(必须列出该列的场景)

好问题!我太懂这种场景了——有时候因为要复用SQL模板、动态生成语句等原因,你没法直接把不需要更新的列从语句里删掉,这时候确实需要一种方式来明确指定“让这个列保持当前值不变”。

下面是最靠谱的解决方案:

  • 跨数据库通用方案:直接将列赋值给自己
    这是所有SQL数据库都支持的方法,你只需要把目标列的赋值写成 COL_A = COL_A 就行。数据库的查询优化器会自动识别这种“无意义”的赋值操作,不会对该列执行任何实际更新,但完美满足了你必须列出该列的要求。
    示例语句:

    UPDATE TABLE SET COL_A = COL_A, COL_B = 'hello' WHERE ID = 123
    

    不用担心性能问题,优化器会直接跳过这个赋值步骤,效果和你把COL_A从语句里移除完全一样。

  • 有没有专用的SQL关键字?
    很遗憾,SQL标准里并没有定义专门用来指定“保持原值”的关键字(DEFAULT是调用列的默认值,和保持原值完全是两回事)。少数数据库可能有一些扩展语法,但通用性极差,远不如上面的通用方案实用。

举个实际场景的例子:如果你的系统需要生成通用的UPDATE模板,包含表的所有列,那么对于不需要修改的列,你只需要填充列名=列名,需要修改的列填充对应的值就可以了,不用额外判断要不要移除列,非常方便。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:31:41