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

PostgreSQL向已有表新增列:已有行设初始值、新行用不同默认值

PostgreSQL新增列指定已有行填充值和后续默认值方案

完全可以实现你要的效果,你需要的未知语法就是 USING 子句,完整执行语句如下:

ALTER TABLE my_table
ADD COLUMN description varchar(100)
DEFAULT 'B2'
USING 'A1';

语法说明

  • DEFAULT 'B2':为新增字段设置全局默认值,后续插入数据如果未显式指定description字段的值,会自动填充为B2
  • USING 'A1':仅在新增字段的执行阶段生效,会把表中所有已存在的行的description字段一次性填充为A1,不会影响后续新增数据

注意:PostgreSQL 中字符串字面量需要用单引号包裹,双引号仅用于识别表名、字段名等标识符,你示例中写的DEFAULT "B2"属于语法错误,需要调整为单引号。

验证效果

执行上述ALTER语句后,再运行修正后的插入语句:

INSERT INTO my_table(name, work)
VALUES ('karen', 'developer');

最终表数据和你预期完全一致:

nameworkdescription
bobfiremanA1
carlteacherA1
alicepolicemanA1
karendeveloperB2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:48:01