函数的截断表不适用于特定的PostgreSQL表

问题描述 投票:0回答:1

我正在将数据从Oracle中的数据库迁移到Postgresql中的数据库。在测试过程中,我必须删除PostgreSQL表中的所有数据。为此,我做了一个功能:

 CREATE OR REPLACE FUNCTION mod_migracion.fn_clear_database() 
RETURNS void AS
$$
declare 
var1 text;
BEGIN 

SELECT 'TRUNCATE TABLE ' || string_agg(format('%I.%I', schemaname, tablename), ', ') ||
 ' CASCADE' into var1 FROM pg_tables WHERE schemaname like 'mod%' ;
 raise notice '%',var1;
  execute var1;
 END
 $$ 
 LANGUAGE plpgsql;
 

该功能正常工作,并且应该删除所有数据。开始迁移时,一切正常,但是在特定表中,我抛出一个重复键错误违反唯一约束的错误。有趣的是,没有重复。实际上,该表中的数据似乎从不被删除。有谁能够帮助我。对不起,我的英语不好。

database postgresql
1个回答
0
投票

我已经解决了问题。该功能正常工作。问题是步骤不正确的ETL。谢谢。!

© www.soinside.com 2019 - 2024. All rights reserved.