尝试使用||更新表中的JSONB列运算符,然后使用now或current_timestamp插入当前时间,但不能。
我的jsonb_column结构是
{
"status": "oldStatus","statusUpdatedTimestamp": null //this field might be present or not,if it's present it has to be overwritten. if not,it has to be added
}
create or replace function update_jsonb()
returns trigger language plpgsql
as $function$
begin
if (TG_OP = 'UPDATE' and old.jsonb_column ->> 'status' <> new.jsonb_column ->> 'status') then
--need statusUpdatedTimestamp to have the current time
new.jsonb_column = new.jsonb_column || '{"statusUpdatedTimestamp": ' now ' }';
end if;
return new;
end;
$function$ ;
我对jsonb_column的预期输出是
{
"status": "newStatus","statusUpdatedTimestamp": '2019-12-11 10:10:35'
}