PostgreSQL如何实现自动更新时间戳

技术PostgreSQL如何实现自动更新时间戳这篇文章主要介绍PostgreSQL如何实现自动更新时间戳,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是PostgreSQL时间戳数据类型?在P

本文主要介绍PostgreSQL如何自动更新时间戳,非常详细,有一定的参考价值。感兴趣的朋友一定要看完!

00-1010在PostgreSQL中,下一个数据类型是TIMESTAMP,它可以存储TIME和DATE值。但是它不支持任何时区数据。这意味着当我们转换数据库服务器的时区时,时间戳值将存储在数据库中,不能重复修改。

在PostgreSQL中,时间戳数据类型分为两种时间数据类型,如:

时间戳

timpstamptz

Timestamp:使用不带时区的时间戳数据类型。

Timeptz : 3360 Timeptz数据类型用于时区。

注意:

Timeptz数据类型是与时区相关的日期和时间数据类型,它是一个带有时区的timestamptz。

和时间戳,如下面的命令:所示。

选择名称,类型

FROMpg_type

wheretypname~'^timestamp';最近公司有些新实习生在使用PostgreSQL创建表Schema时,对创建时间create_at和更新时间update_at这两个字段的自动更新时间戳不是很清楚。把这篇文章记录下来,以便以后来的实习生和新同事有个参考。

00-1010在谈论如何更新时间戳之前,我们仍然需要知道为什么需要自动更新时间戳。对于许多业务表,我们大多数人需要记录以下字段:

创建时创建

更新时更新

创建者创建

更新程序更新

为了给这些字段赋值,我们需要给存储库层的实体赋值,创建时间和更新时间取当前系统时间LocalDateTime,创建者和更新者需要由系统用户赋值。对于创建时间和更新时间,是否可以不每次都手动为存储库中与当前业务无关的字段赋值?

当然,肯定有。创建时间只不过是数据新插入行的时间,更新时间是行数据更新的时间。如果你理解了这一层的含义,就有了解决办法。

对于Mysql来说,内部提供的函数很容易自动更新创建时间和更新时间的字段,但是对于PostgreSQL来说,就有点复杂了。

什么是PostgreSQL时间戳数据类型?

要在插入数据时自动填充create_at列的值,我们可以使用DEFAULT值,如下所示。

CREATETABLEusers(

.

create _ attimestamp(6)default current _ timestamp

)为create_at字段设置一个默认值current_timestamp,以便通过在INSERT语句中提供一个值来显式覆盖此列的值。

但是,上述方法仅在插入行数据时有用。如果行被更新,我们需要使用数据库的触发器。

首先,我们编写一个触发器update_modified_column,如下面的代码所示,这意味着更新表的字段update_at是当前时间戳。

creatorreplaceffectionupdate _ modified _ column()

RETURNSTRIGGERAS$$

开始

new . update _ at=now();

RETURNNEW

END

$ $ language 'plpgsql然后我们应用这个触发器。怎么做?当然,设置这个触发器的触发条件。

CREATETRIGGERupdate _ table _ name _ update _ atbeforeupdatecontable _ name foreachrowexecuteproepdatedate _ modified _ column();也就是说,在更新table_name行的数据时,执行这个触发器,我们需要对每个表设置应用这个触发器!至此,达到目的。

以上就是文章“PostgreSQL如何自动更新时间戳”的全部内容。感谢您的阅读!希望分享的内容对大家有所帮助。更多相关知识,请关注行业资讯频道!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/115595.html

(0)

相关推荐

  • Does RSA Private key always contain the Public key, or is it just .NET

    技术Does RSA Private key always contain the Public key, or is it just .NET Does RSA Private key always

    礼包 2021年12月9日
  • 编写CSS的方法有哪些

    技术编写CSS的方法有哪些这篇文章主要讲解了“编写CSS的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写CSS的方法有哪些”吧!  CSS正在改变网站设计的

    攻略 2021年12月10日
  • 比尔吉沃特是几区,lol英雄联盟每个大区的含义

    技术比尔吉沃特是几区,lol英雄联盟每个大区的含义每个服务器的名字都代表着符文之地的地区或势力。各服务器名称及含义:电信一区:艾欧尼亚,艾欧尼亚是寻求心灵进化的天堂,位于瓦罗然大陆之外,诺克萨斯东北;电信二区:祖安,祖安

    生活 2021年10月26日
  • Redis如何删除1.2亿指定前缀的key

    技术Redis如何删除1.2亿指定前缀的key这篇文章主要为大家展示了“Redis如何删除1.2亿指定前缀的key”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redis如何

    攻略 2021年12月1日
  • 抖音刷人气网站,优质的刷赞平台

    技术抖音刷人气网站,优质的刷赞平台根据小编的了解,现在可以说在全民各行各业各个年龄层都大火的抖音短视频吸粉的速度也是十分快速的,而上面有很多网红粉丝量已经让人眼前一亮,大大惊艳了吃瓜群众。甚至有的普通人粉丝能达到成百上千

    测评 2021年10月20日
  • react中的flux是什么

    技术react中的flux是什么本篇内容主要讲解“react中的flux是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react中的flux是什么”吧!

    攻略 2021年11月24日