需求,
将某个目录下sql,通过psql全部录入到数据库中
1. 创建一个ll.sh内容如下,并赋予执行权限:
#!/bin/sh
ls -l $1 |awk -F ' ' '{print $9}'
2. 将duckdb以及shellfs扩展安装上(如果没有联网,可以在联网的机器上下载duckdb并install shellfs from community后,将duckdb和.duckdb文件夹一并拷贝上去,相当于绿色安装)
3. 启动duckdb,并加载shellfs

4. 执行如下sql
copy (select 'psql -d dbname -f '||name from read_csv('./ll.sh softmedia |') as t(name)) to batchsql.sql(format csv,header false);
5. 如果想使用多个sql文件并行执行可以分部分的sql 进行存储如:
a. 先查询记录数量:
select count(*) from read_csv('./ll.sh softmedia |') ;
┌──────────────┐
│ count_star() │
│ int64 │
├──────────────┤
│ 26 │
└──────────────┘
b. 分别每10个文件一个形成一个sql文件
copy (select 'ps
duckdb批量生成并录入sql到数据库

最低0.47元/天 解锁文章
2246

被折叠的 条评论
为什么被折叠?



