我希望将CSV导入Postgres表中,但我想在执行过程中决定某一列是否应该是0或1,这取决于表中已有的行。
例如,我正在向一个表中添加联系人,并且想要将它们标记为主要联系人,如果没有已经存在的主要联系人,则将它们添加为次要联系人:
现有行:
例如,我正在向一个表中添加联系人,并且想要将它们标记为主要联系人,如果没有已经存在的主要联系人,则将它们添加为次要联系人:
现有行:
contact_id | branch_id | primary
-------------+-----------+--------
1 | 100 | 1
2 | 101 | 1
3 | 101 | 0
CSV数据,
contact_id | branch_id
-----------+-----------
4 | 100
5 | 101
6 | 102
7 | 103
期望的结果:
contact_id | branch_id | primary
-----------+-----------+--------
1 | 100 | 1
2 | 101 | 1
3 | 101 | 0
4 | 100 | 0
5 | 101 | 0
6 | 102 | 1
7 | 103 | 1
注意:由于这些分支已经存在主要联系人,因此联系人4和5被添加为次要联系人,而由于这些分支不存在主要联系人,因此联系人6和7被添加为主要联系人。
在Postgres 9.2中是否可能实现此功能?