在 Postgres 中,我想存储表的上次更新/插入时间。 Microsoft SQL Server 提供了一种类型timestamp
由数据库自动维护。
But timestamp
在 Postgres 中,工作方式不同,它不会自动更新,并且列始终为空。
在postgresql中,你必须使用触发器。您可以点击此链接了解如何操作https://x-team.com/blog/automatic-timestamps-with-postgresql/ https://x-team.com/blog/automatic-timestamps-with-postgresql/ .
要总结本文,您可以执行以下操作:
-
创建将被触发的Pl/Pgsql函数:
CREATE OR REPLACE FUNCTION trigger_set_timestamp()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-
创建您的表格
CREATE TABLE mytable (
id SERIAL NOT NULL PRIMARY KEY,
content TEXT,
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
-
最后添加触发器:
CREATE TRIGGER set_timestamp
BEFORE UPDATE ON mytable
FOR EACH ROW
EXECUTE FUNCTION trigger_set_timestamp();
您可以在此处找到有关该问题的更多信息:https://dba.stackexchange.com/questions/58214/getting-last-modification-date-of-a-postgresql-database-table https://dba.stackexchange.com/questions/58214/getting-last-modification-date-of-a-postgresql-database-table
希望它能帮助你。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)