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

1. 需求说明:sql

     实现MYSQL中有on update CURRENT_TIMESTAMP数据库

2. 需求分析post

  因为数据库迁移须要将MYSQL中的数据迁移到postgresSQL中,因为MYSQL中有on update CURRENT_TIMESTAMP这种功能可是PostgresSQL中并无。须要寻找一个代替方法来作,采用触发器,来进行更新测试

3. 实现blog

  1. 表的结构以下class

CREATE TABLE users (

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

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

  2. 建立触发器更新该字段date

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

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

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

  

4. 测试便可im

相关文章
相关标签/搜索