gpt4 book ai didi

postgresql - PostgreSQL 有没有办法自动设置记录更新的时间?

转载 作者:行者123 更新时间:2023-11-29 13:35:02 27 4
gpt4 key购买 nike

有没有办法在表的定义中设置更新记录的时间,就像插入记录时使用 NOW() 函数的默认值设置一样?

最佳答案

这里最好的选择是触发器。这是一个简单的选项,自包含:

CREATE TABLE triggertest (
id serial,
test text,
last_modified timestamp default now()
);

CREATE FUNCTION update_last_modified() RETURNS TRIGGER
LANGUAGE PLPGSQL AS
$$
BEGIN
NEW.last_modified := now();
RETURN NEW;
END;
$$;
CREATE TRIGGER update_timestamp BEFORE UPDATE ON triggertest
FOR EACH ROW EXECUTE PROCEDURE update_last_modified();

insert into triggertest (test) values ('test');

select * from triggertest;

返回:

 id | test |       last_modified        
----+------+----------------------------
1 | test | 2013-02-16 17:30:41.678707
(1 row)

对于我们的更新测试:

  update triggertest set test = 'another';

select * from triggertest;

返回

  id |  test   |      last_modified       
----+---------+--------------------------
1 | another | 2013-02-16 17:31:38.1126
(1 row)

关于postgresql - PostgreSQL 有没有办法自动设置记录更新的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14908321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com