作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有没有办法在表的定义中设置更新记录的时间,就像插入记录时使用 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/
我是一名优秀的程序员,十分优秀!