我在PostgreSQL中有两个表,每天都收到传入的CSV,其中包含新信息。作为参考,这是一个健身房,因此每个人都可以拥有ID,地址,成员资格终止时的时间等。
所以我有一个表成员资格,其中包含所有这些元数据。每次输入CSV时,我都想添加新成员行并更改现有成员的任何已更改元数据。
同时,我想将所有这些更改记录在单独的“操作”表中。
所以说我有
John,33,1234 A St,Anchorage,AK,555-555-5555
这进入我的主“成员资格”表,并且也作为“新”进入“动作”表。
如果第二天John
由于某种原因发送了地址更改,则memberships
表将更新为
John,6789 B St,555-555-5555
未创建新行。在动作表中,将创建一个新行,其中包含约翰的member ID
(序列PK)和空值(地址值除外),该行现在显示6789 B St
和动作Updated
我想知道是否可以同时批量输入信息(例如,我有10位成员都需要以不同的方式更新元数据,一个改变了她的电话号码,另一个改变了他的地址) 。我知道我可以一一完成所有这一切,但这似乎很昂贵,所以我想知道是否有办法在更少的查询中做到这一点
如果我有300行进行了修改,我可以一次完成所有操作,还是必须一次执行一行?
在Google上搜索WHILE
和IF
似乎有些问题,但我也只是想知道我是否在正确的轨道上,因为我找不到谷歌搜索这个特定答案的解决方案。似乎可以进行批量插入和删除(如果它们都是新的,或者它们全部都被删除了),但我不知道修改可能不一样(也许有些是新的,有些是需要修改,有些需要删除。)
感谢您的帮助!