now()默认值都显示相同的时间戳

我已经用一列(类型:timestamp with timezone)创建了我的表,并将其默认值设置为now()current\u timestamp()

我在单个函数中的单独语句中运行了一系列插入,我注意到所有的时间戳都等于(ms),函数值是否以某种方式缓存并为整个函数调用或事务共享

这是预期和记录的行为:

从手册中:

由于这些函数返回当前事务的开始时间,因此它们的值在事务期间不会更改。这被认为是一个特性:其目的是允许单个事务具有一致的“当前”时间概念,以便同一事务中的多个修改具有相同的时间戳。

如果希望在每次运行语句时更改某些内容,则需要使用statement\u timestamp()甚至clock\u timestamp()(再次参见手册中的说明)

发表评论