我有一个包含多个csv文件的文件夹,它们都具有相同的列属性.
我的目标是使每个csv文件都成为一个不同的postgresql表,命名为文件名,但由于有超过1k个csv文件,手动操作将是一个相当长的过程.
我一整天都在努力寻找解决方案,但最接近解决问题的是以下代码:
for filename in select pg_ls_dir2 ('/directory_name/') loop
if (filename ~ '.csv$') THEN create table filename as fn
copy '/fullpath/' || filename to table fn
end if;
END loop;
这段代码背后的逻辑是 Select 文件夹中的每个文件名,创建一个名为文件名的表,并将内容导入到所述表中.
问题是,我不知道如何实际将其付诸实践,例如,由于for
和pg_ls_dir2
都不是SQL指令,我应该在哪里执行这段代码?