0

我创建了下表。

create table foo 
(   
  ibutton text NULL,
  severidade int4 NULL,
  dt_insercao timestamptz NULL DEFAULT now()
)

我的插入:

insert into foo (ibutton, severidade)values ('aa', 4);

对于“dt_insersao”值的任何情况,应该默认为“现在”,始终为“2017-06-08 10:35:35”...

我不知道它是从哪里来的这个值..

这个插入被执行到我的持续转换中。

这些插入被执行到我对 pipelinedb 的持续转换中。当我在客户端 PGAdmin 中执行时,日期是正确的。

4

1 回答 1

0

不确定 PipelineDB 是如何在这里发挥作用的,但在 Postgres 中,now()为单个事务中的所有插入返回相同的值:

从手册中引用

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

如果您需要为在一个事务中插入的每一行使用不同的值,clock_timestamp()请改为在表定义中使用。

于 2017-06-20T14:18:14.797 回答