Дата по умолчанию для вставки не изменяется при непрерывном преобразовании

Я создал таблицу ниже.

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, дата верна.

1 ответ

Решение

Не уверен, как PipelineDB вступает в игру здесь, но в Postgres, now() возвращает одинаковое значение для всех вставок в одной транзакции:

Цитата из руководства

Поскольку эти функции возвращают время начала текущей транзакции, их значения не изменяются во время транзакции. Это считается особенностью: намерение состоит в том, чтобы позволить одной транзакции иметь согласованное представление о "текущем" времени, чтобы несколько модификаций в одной транзакции имели одинаковую отметку времени.

Если вам нужно другое значение для каждой строки, вставленной в одну транзакцию, используйте clock_timestamp() вместо этого в вашем определении таблицы.

Другие вопросы по тегам