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

PostgreSQL将同表字段计算值写入另一列使用INSERT报错求解

问题根因

你所有报错的核心原因是选错了SQL操作类型:INSERT 用于向表中插入全新的行,而你需要的是修改已有行的column3字段值,应该使用UPDATE语句。
其余具体报错原因:

  • 23502非空约束报错:column1是主键非空字段,INSERT新增行时必须传入主键值,你仅传入column3的赋值自然触发约束报错
  • 42601语法报错:INSERT ... VALUES 语法不支持直接传入返回多行结果的SELECT子查询,写法本身不符合SQL规范

正确实现代码

直接执行全表UPDATE操作即可:

UPDATE mytable
SET column3 = column2 / 1.25;

如果你使用的数据库(如PostgreSQL)对数值到money类型的隐式转换有兼容要求,可以加显式类型转换避免报错:

UPDATE mytable
SET column3 = (column2 / 1.25)::money;

执行后所有行的column3就会被更新为对应行column2除以1.25的计算结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:36:11