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)

相关推荐

  • C++ 调试问题:对象包含与成员函数不兼容的类型限定符

    技术C++ 调试问题:对象包含与成员函数不兼容的类型限定符 C++ 调试问题:对象包含与成员函数不兼容的类型限定符今天调试C++自定义String代码的时候,碰到一个问题,编译期报错:对象包含与成员函数

    礼包 2021年11月13日
  • 如何理解MySQL 5.5 InnoDB表锁

    技术如何理解MySQL 5.5 InnoDB表锁本篇文章为大家展示了如何理解MySQL 5.5 InnoDB表锁,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

    攻略 2021年11月16日
  • HDFS的常用命令操作

    技术HDFS的常用命令操作 HDFS的常用命令操作HDFS的常用命令操作1、基本语法2、常用命令操作#######################1、基本语法bin/hadoop fs 具体命令或bin

    礼包 2021年12月3日
  • LINUX图形化如何安装ORACLE

    技术LINUX图形化如何安装ORACLE这篇文章给大家分享的是有关LINUX图形化如何安装ORACLE的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。光盘加载操作系统mkdir /mnt/cdr

    攻略 2021年11月10日
  • 如何理解公共MySQL的数据库服务器层

    技术如何理解公共MySQL的数据库服务器层如何理解公共MySQL的数据库服务器层,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  MySQL插件式存储引擎是

    攻略 2021年11月9日
  • mysql如何进行索引修改

    技术mysql如何进行索引修改这篇文章主要介绍“mysql如何进行索引修改”,在日常操作中,相信很多人在mysql如何进行索引修改问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql如

    攻略 2021年12月2日