Утверждение Upsert Удаление не конфликтующих данных (Postgres) - PullRequest
0 голосов
/ 06 июня 2018

В настоящее время я пытаюсь запустить функцию с Postgres, чтобы обновить мою рабочую таблицу из моей промежуточной таблицы.Мне удалось запустить функцию, но не так, как я планировал.

Моя текущая цель с использованием этого оператора - выполнить Upsert, но происходит то, что все данные, которые не существуют в пределах диапазона дат того, что переносится из подготовки в производство, удаляются,Это не идеально.

INSERT INTO xyz.crimsontwreng 

SELECT *
FROM xyz.stg_crimsontwreng 
ON CONFLICT (date, monitorid)
DO UPDATE SET
  replies = excluded.replies,
  retweets = excluded.retweets,
  mentions = excluded.mentions;

Интересно узнать, чего мне не хватает в этой функции, чтобы предотвратить удаление данных за пределы диапазона дат.У меня есть данные за год, и теперь у меня есть только информация за последние семь дней, которую мой скрипт Python получил сегодня утром.

Если это поможет, моя функция настроена таким образом.

RETURNS text
LANGUAGE 'sql'
VOLATILE
PARALLEL UNSAFE
COST 100

* Похоже, что эта проблема может быть связана с проблемой даты и времени с полем даты, которое я вызываю.

...