postgresql – 当布尔字段设置为true时,postgres更新日期字段

编程之家收集整理的这篇文章主要介绍了postgresql – 当布尔字段设置为true时,postgres更新日期字段编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
为了示例,请考虑一个表

create table foo (
  contents text NOT NULL,is_active boolean NOT NULL DEFAULT false,dt_active date
)

我插入一条记录:

insert into foo (contents) values ('bar')

到现在为止还挺好.后来,我现在要“激活”记录:

update foo set is_active = true

当is_active从false更改为true时,我想要做的是将dt_active设置为now().对于奖励积分,如果将​​is_active从true更改为false,将dt_active设置为null,那将是很好的,但我可以不用它.

我真的想将这个内务处理推送到数据库中,它会使客户端代码更加清晰(因为许多表(甚至表中的列元组)都可以从这种技术中受益).

我很困惑如何在触发器中拉出数据库中的当前记录(我正在使用plpgsql),以便将“then”与“now”进行比较.代码示例或代码段的指针非常感谢.

解决方法

CREATE OR REPLACE FUNCTION trg_update_foo() RETURNS TRIGGER AS
$BODY$
BEGIN
    IF OLD.is_active = false AND NEW.is_active = true THEN
        NEW.dt_active := now();
    ELSIF OLD.is_active = true AND NEW.is_active = false THEN
        NEW.dt_active := NULL;
    END IF;
    RETURN NEW;
END;
$BODY$
LANGUAGE 'plpgsql';
CREATE TRIGGER trg_update_foo BEFORE UPDATE ON foo FOR EACH ROW EXECUTE PROCEDURE trg_update_foo();

应该管用.有关更多信息,请查看pl / Pgsql Triggers manual,以及额外的积分 – 整个plPgSQL文档.

总结

以上是编程之家为你收集整理的postgresql – 当布尔字段设置为true时,postgres更新日期字段全部内容,希望文章能够帮你解决postgresql – 当布尔字段设置为true时,postgres更新日期字段所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478

猜你在找的Postgre SQL相关文章

来源:http://www.postgres.cn/docs/11/ 4.1.1. 标识符和关键词 SQL标识符和关键词必须以一个字母(a-z,也可以是带变音符的字母和非拉丁字母)或一个下划
来源:http://www.postgres.cn/docs/11/ 8.1. 数字类型 数字类型由2、4或8字节的整数以及4或8字节的浮点数和可选精度小数组成。表 8.2列出了所
来源:http://www.postgres.cn/docs/11/ 5.1. 表基础 SQL并不保证表中行的顺序。当一个表被读取时,表中的行将以非特定顺序出现,除非明确地指定需要排序。 尝
来源:http://www.postgres.cn/docs/11/ 6.4. 从修改的行中返回数据 有时在修改行的操作过程中获取数据很有用。INSERT、 UPDATE和DELE
来源:http://www.postgres.cn/docs/11/ 13.2.1. 读已提交隔离级别 读已提交是PostgreSQL中的默认隔离级别。 当一个事务运行使用这个隔离级别时,
来源:http://www.postgres.cn/docs/11/ 9.7. 模式匹配 PostgreSQL提供了三种独立的实现模式匹配的方法:SQL LIKE操作符、更近一些的
青岛OJ系统用的关系型数据库是PostgreSQL,为此对PostgreSQL大致了解下。 今天的主要话题围绕下面两个方面: PostgreSQL安装 PostgreSQL使用 一、PostgreSQ
David Bolton是一名独立开发者,他使用PostgreSQL和MySQL都已有超过十年的时间。近日,他撰文阐述了选择PostgreSQL而不是MySQL的理由。他认为,MySQL之所以仍然如此流行是因为每个Linux Web托管软件包中都包含它。但随着Oracle将其收购,MySQL的开源程度大不如前。而PostgreSQL不仅发展更快,还加入了JSON支持,成为少数几个支持NoSQL的关
David Bolton是一名独立开发者,他使用PostgreSQL和MySQL都已有超过十年的时间。近日,他撰文阐述了选择PostgreSQL而不是MySQL的理由。他认为,MySQL之所以仍然如此流行是因为每个Linux Web托管软件包中都包含它。但随着Oracle将其收购,MySQL的开源程度大不如前。而PostgreSQL不仅发展更快,还加入了JSON支持,成为少数几个支持NoSQL的关
唐成,拥有十几年数据库、操作系统、存储领域的工作经验。目前任沃趣科技首席数据库架构师,从事数据库高可用、高性能以及数据库云化等方面的研究工作。历任阿里巴巴数据库专家、高级数据库专家,从事过阿里巴巴的线上Oracle、Greenplum、PostgreSQL数据库的架构设计和运维工作,为阿里巴巴的PostgreSQL数据库的布道者,推动阿里云的关系型数据库服务(RDS)中提供PostgreSQL数据
点击上方蓝色文字直接关注 文/谭峰 DBA,PostgreSQL专家‍ 开源数据库 PostgreSQL 中文资料非常缺乏,很多社区朋友苦于上手的中文资料少,因此汇总收集以下 PostgreSQL 中文资料,包括 PostgreSQL 中文手册,中文书籍,技术博客,培训视频和历届 PostgreSQL 大会材料。希望这些中文资料能够方便有需要的朋友,降低 PostgreSQL 的上手门槛。 中文社