如何将CSV文件中的数据自动填充到PostgreSQL?
我正在使用此SQL查询填充数据库:如何将CSV文件中的数据自动填充到PostgreSQL?,postgresql,csv,Postgresql,Csv,我正在使用此SQL查询填充数据库: CREATE TEMP TABLE tmp_x AS SELECT * FROM testcsv LIMIT 0; -- but see below COPY tmp_x FROM 'D:\water_utility.csv' (header, FORMAT CSV, ENCODING 'WIN1251'); insert into testcsv select * from ( select x.* from tmp_x x left outer jo
CREATE TEMP TABLE tmp_x AS SELECT * FROM testcsv LIMIT 0; -- but see below
COPY tmp_x FROM 'D:\water_utility.csv' (header, FORMAT CSV, ENCODING 'WIN1251');
insert into testcsv select * from (
select x.*
from tmp_x x
left outer join testcsv t on t. timestamp = x. timestamp
where t. timestamp is null
) as missing;
DROP TABLE tmp_x; -- else it is dropped at end of session automatically
您能否帮助我,告诉我如何从名为这样的文件夹中获取所有文件,并用数据填充表格:
示例\u 1.csv示例\u 2.csv。。。示例_12.csv
数字是文件创建的月份。如何创建自动填充脚本?请尝试以下方法:
do
$$
begin
execute format ($f$COPY tmp_x FROM 'D:\water_utility%s.csv' (header, FORMAT CSV, ENCODING 'WIN1251');$f$,extract(month from now()));
end;
$$
;
而不是你的复印行
更新
它通常被称为动态sql-我在调用语句之前格式化语句。在这里,我将当前月号附加到文件名,因此执行行为:
COPY tmp_x FROM 'D:\water_utility8.csv' (header, FORMAT CSV, ENCODING 'WIN1251');
因为8月是第8个月(我用
摘录(从现在开始的一个月())
)你能解释一下我不能100%理解的代码吗?谢谢你的帮助!干杯你好。你能再帮我一次吗。我想今年也一样。如何做到这一点?嗨,请在标题上贴一个新问题。我想我会因为重复这个问题而投很多反对票。