背景
公司最近有个项目数据库里表需要使用到另外一个数据库里表的某两个字段,而且并不是直接查询就能插入到新表里
旧表
id
sn
customer
1
xxxx
Test
新表
id
sn
customer_id
1
xxxx
1
id
customer
1
Test
我开始考虑的是使用python脚本去查数据库,然后逻辑判断,这种方式也是可以实现的。
进行插入但表里的数据有几百万条记录,使用python脚本迁移,有网络的开销,执行的速度会很慢,
所以我考使用postgresql的存储过程进行迁移
思路:在新库创建schema,然后将旧表导入schema里,
然后再存储过程脚本里查询schema里的旧表,在插入新表逻辑时进行查询判断,然后将记录插入到新表里
vim bossToAd.sql
创建迁移脚本bossToAd.sql文件,以下为代码内容
CREATE OR REPLACE FUNCTION bossToadfunc ()
RETURNS integer AS $$
declare
row RECORD;
sn_v varchar;
customer_v varchar;
ids RECORD;
c_id integer := 0;
count integer :=0;