我正在将数据从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;
该功能正常工作,并且应该删除所有数据。开始迁移时,一切正常,但是在特定表中,我抛出一个重复键错误违反唯一约束的错误。有趣的是,没有重复。实际上,该表中的数据似乎从不被删除。有谁能够帮助我。对不起,我的英语不好。
我已经解决了问题。该功能正常工作。问题是步骤不正确的ETL。谢谢。!