Sql 如何在不使用触发器的情况下创建自动更新postgres时间戳列

Sql 如何在不使用触发器的情况下创建自动更新postgres时间戳列,sql,postgresql,Sql,Postgresql,在我的一些表中,有一些列包含一个创建时间戳列(应该在insert时设置)和一个上次更新时间戳(应该在每次更新时更新)。我想在不使用触发器的情况下执行此操作是否可行?对于创建时间列,您现在可以设置默认值,但对于上次更新时间,我认为您必须使用触发器 顺便说一句,你为什么不想要触发器?阅读答案上的注释这里不可能。这就是为什么触发器被发明的原因,只要使用它们就行了。这些列用于很多表,它们在这里只是为了审计的目的,我想我的ddl会简单得多,如果时间戳的数据类型总是在更新时更新的话。我现在有触发器,它们的类

在我的一些表中,有一些列包含一个创建时间戳列(应该在insert时设置)和一个上次更新时间戳(应该在每次更新时更新)。我想在不使用触发器的情况下执行此操作是否可行?

对于创建时间列,您现在可以设置默认值,但对于上次更新时间,我认为您必须使用触发器


顺便说一句,你为什么不想要触发器?

阅读答案上的注释这里不可能。这就是为什么触发器被发明的原因,只要使用它们就行了。这些列用于很多表,它们在这里只是为了审计的目的,我想我的ddl会简单得多,如果时间戳的数据类型总是在更新时更新的话。我现在有触发器,它们的类型太多,无法设置。@ams(RE:“键入太多”):如果您不介意每个表中的更新时间戳字段具有完全相同的名称,然后,您只需创建一个带有返回触发器的函数来更新它,并对包含该字段的所有表上的更新触发器重新使用该触发器函数。这种方法有其优点和缺点,但如果您在不同的表中已经有重复的字段名,并且具有不同的含义,那么这应该不是什么大问题(我在每个表中都看到“id”字段)。@Matthew Wood,是的,我的数据库遵循一种命名约定,我确保所有表都使用它,这些字段总是被称为insert_ts和lastupdate_ts。我有两个触发器函数,可以在所有表上重用。