首页 > 解决方案 > 使用默认值向 PostgreSQL 添加列但不影响当前行

问题描述

我想在 Postgres 表中添加一列。我希望现有行的值为 null,但对于新行,它将采用我将在查询中指定的默认值。

我正在运行这个查询 -

ALTER TABLE events 
ADD COLUMN event_timestamp timestamp default current_timestamp

这运行良好,但它也在填充现有行的当前时间戳。如何更改查询,使其不会为现有行添加默认值?

标签: sqlpostgresql

解决方案


用两个语句来做:

ALTER TABLE events ADD COLUMN event_timestamp timestamp;
ALTER TABLE events ALTER event_timestamp SET DEFAULT current_timestamp;

推荐阅读