我需要将我的表导出为.csv文件,但名称必须是当前日期。
目前我正在使用
COPY public."table" TO 'E:\job.csv' DELIMITER ',' CSV HEADER
我该怎么办?我试着寻找答案,但没有运气......
答案 0 :(得分:1)
您始终可以运行动态SQL
DO $func$
BEGIN
EXECUTE $$
COPY public."table" TO 'E:\job_$$ || to_char(CURRENT_DATE, 'YYYY_MM_DD') || $$.csv' DELIMITER ',' CSV HEADER;
$$;
END;
$func$ LANGUAGE plpgsql;
因此,您将命令形成为字符串,然后将其传递给EXECUTE
。这可以作为plpgsql
使用,您可以按照我已经显示的内联方式运行,或者声明为函数:
CREATE OR REPLACE FUNCTION public.export_table()
RETURNS VOID AS $func$
BEGIN
EXECUTE $$
COPY public."table" TO 'E:\job_$$ || to_char(CURRENT_DATE, 'YYYY_MM_DD') || $$.csv' DELIMITER ',' CSV HEADER;
$$;
END;
$func$ LANGUAGE plpgsql;
然后使用SELECT public.export_table()