简介
目前从PostgreSQL迁移到YashanDB后,需要进行数据校验。下面给出user1模式从PostgreSQL迁移到YashanDB进行数据行数比对的示例。
详情
获取PostgreSQL精确行数
创建table_count,用于存储行数(建议:使用现有的迁移模式user1,并把table_count创建在user1用户下)
create table user1.table_count (owner varchar(200),table_name varchar(200),num_rows int);
获取user1模式下的所有表的行数
DO $$
DECLARE
one_row record;
stmt varchar(200);
num_rows int;
BEGIN
EXECUTE 'truncate table table_count';
FOR one_row IN (select schemaname, tablename from pg_tables where upper(schemaname)=upper('user1') and upper(tablename)!=upper('table_count')) loop
stmt := 'select count(*) from ' || one_row.schemaname || '.' || one_row.tablename || '';
raise notice '%', stmt;
EXECUTE stmt into num_rows;
raise notice '%', num_rows;
insert into table_count values(upper(one_row.schemaname), upper(one_row.tablename), num_rows);
END loop;
commit;
END $$;
获取YashanDB精确行数
从PostgreSQL迁移到YashanDB迁移user1模式