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等字段的主要内容,如果未能解决你的问题,请参考以下文章
on - django 执行数据库迁移后数据库并未更新 和 InternalError: (1054, u"Unknown column 'xxx' in 'fiel