为了这个例子,考虑一个表
create table foo (
contents text NOT NULL,
is_active boolean NOT NULL DEFAULT false,
dt_active date
)
我插入一条记录:
insert into foo (contents) values ('bar')
到目前为止,一切都很好。稍后,我现在想“激活”记录:
update foo set is_active = true
is_active
当从false
to更改为时,我想做的true
是 fordt_active
设置为now()
。is_active
对于奖励积分,如果从更改true
为e会很好fals
,dt_active 设置为 null,但我可以没有它。
我真的很想将这种内务处理推送到数据库中,它会使客户端代码更加简洁(因为许多表(甚至表中的列元组)都可以从这种技术中受益)。
我很困惑如何在触发器中提取数据库中的当前记录(我正在使用 plpgsql),以便将“then”与“now”进行比较。非常感谢指向代码示例或片段的指针。