Postgres插入触发器或用Java更新



我正在学习如何在Java中使用ORM和Postgres,我想在表列date中维护一条记录,该记录将保持以下格式:

2022-05-28T21:12:01.000Z

所以我看到两条路:

  1. 创建Postgres Insert触发器
  2. 只关心dao逻辑中的日期insertint

Second对我来说很直观,但我应该选择什么?也许飞行通道迁移在这里可能有用?

编辑:我在评论中说过Postgres以二进制格式保存日期,所以我会处理这个问题。但自动插入"日期"对我来说仍然不清楚

提前感谢!

通常建议将所有DB中的日期类型存储为日期类型,而不是字符串。因为日期类型有一个内部结构,您可以以任何格式向用户显示这些数据。例如:13 September 202213.09.20222022-09-13T12:24:45等。您可以使用此字段的所有日期函数,例如:年份>2022等。所有这些都不取决于我们使用DB触发器或Java DAO这一事实。

但是,触发它的是,例如,当有一个插入数据到一个表中时,我们想要更改另一个表或同一个表的另一条记录。我们有两种方法:

  1. 使用PostgreSQL触发器执行此操作
  2. 要在后端执行此操作(Java dao逻辑(

选项1-不推荐使用。因为触发器将始终运行,即使我们将执行任何用于导入数据的SQL命令。或者在未来,我们可能需要不同的业务逻辑,例如:对于某些记录,我们不需要更改另一个记录。

选项2-推荐。因为我们所有的业务逻辑都将存储在后端。如果在插入之前需要更改另一条记录,我们将编写更改代码。在哪里没有,但我们不会使用更改代码。

但有时,在插入数据之前,您总是(必然(需要更改另一条记录。在这种情况下,建议使用触发器,因为您突然忘记在某个地方编写更改代码。无论是什么,触发器都会一直工作

最新更新