Dur*_*mlı 2 postgresql timestamp
在Postgres中,我想存储表的最后更新/插入时间。Microsoft SQL Server提供了一种timestamp由数据库自动维护的类型。
但是timestamp在Postgres中的工作原理有所不同,它不会自动更新,并且列始终为null。
在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;
Run Code Online (Sandbox Code Playgroud)创建表格
CREATE TABLE mytable (
id SERIAL NOT NULL PRIMARY KEY,
content TEXT,
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
Run Code Online (Sandbox Code Playgroud)最后添加触发器:
CREATE TRIGGER set_timestamp
BEFORE UPDATE ON mytable
FOR EACH ROW
EXECUTE PROCEDURE trigger_set_timestamp();
Run Code Online (Sandbox Code Playgroud)您可以在此处找到有关该问题的更多信息:https : //dba.stackexchange.com/questions/58214/getting-last-modification-date-of-a-postgresql-database-table
希望对您有帮助。
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |