Upsert语句删除非冲突数据(Postgres)

时间:2018-06-06 17:08:43

标签: sql postgresql etl upsert

我目前正在尝试使用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

*似乎此问题可能与我正在调用的日期字段的日期时间问题有关。

0 个答案:

没有答案