postgresSQL 实现数据修改后,自动更新updated_date/ts等字段

Posted lonecloud

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresSQL 实现数据修改后,自动更新updated_date/ts等字段相关的知识,希望对你有一定的参考价值。

1. 需求说明:

     实现mysql中有on update CURRENT_TIMESTAMP

2. 需求分析

  由于数据库迁移需要将MYSQL中的数据迁移到postgresSQL中,由于MYSQL中有on update CURRENT_TIMESTAMP这种功能但是PostgresSQL中并没有。需要寻找一个代替方法来做,采用触发器,来进行更新

3. 实现

  1. 表的结构如下

CREATE TABLE users (

    id serial not null,
    name varchar(100),
    email varchar(200),
    updated_time timestamp
)

 需要实现的功能,当数据更新的时候,将updated_time字段进行更新

  2. 创建触发器更新该字段

CREATE OR REPLACE FUNCTION "upd_timestamp"()
RETURNS TRIGGER AS $$
BEGIN
    NEW.updated_date = now();
    RETURN NEW;
END;
$$ language ‘plpgsql‘;

  3. 在表中添加对应的触发器

CREATE TRIGGER "updated_date" BEFORE UPDATE ON "users"
FOR EACH ROW
EXECUTE PROCEDURE "upd_timestamp"();

  

4. 测试即可

以上是关于postgresSQL 实现数据修改后,自动更新updated_date/ts等字段的主要内容,如果未能解决你的问题,请参考以下文章

DB2DB 一年多以来的重大更新

on - django 执行数据库迁移后数据库并未更新 和 InternalError: (1054, u"Unknown column 'xxx' in 'fiel

SQL server怎么在更新数据的时候让字段自动加1,

使用修改后的日期自动更新谷歌电子表格

自动修改js版本号

vscode 修改代码后,自动更新浏览器