Дата по умолчанию для вставки не изменяется при непрерывном преобразовании
Я создал таблицу ниже.
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()
вместо этого в вашем определении таблицы.