我有一个文件夹里面都是文本文件,我想将这个文件中的文件全部导入postgreSQL中,
我先创建了个表CREATE TABLE test(id int,filename text, file text);
我希望可以通过编程实现文件夹的遍历,然后各个文件的名字放入filename字段中,对应的文件的名字放入file字段中。
请问大家用SQL可以直接实现吗?还是用libpq可以实现呢?或者有什么别的方式实现吗?请大家帮帮忙,这个问题纠结了好久了,我还没纠结出来,麻烦大家知道的给说下吧,多谢了
解决方案 »
- 关于linux下PostgreSQL的连接超时问题
- SQL查询问题,对各位高手来说应该较简单!
- 求解sql语句 帮忙看看
- expire_logs_days 参数疑问?
- linux mysql 如果备份数据库的时候不锁表
- 卸载mysql在Linux下
- vc 调用 libmysql 能 通过http proxy 访问远程mysql数据库吗
- 请教一个查询过慢的问题.
- 我的 MySql query browser 中文乱码
- 各位前辈,我有一个很好的创意,无奈受自身水平所限,空有其心无有其力.这是一个大的工程,请进听小生慢慢道来!!!!
- mysql 多个型号建表疑惑
- 主机名 host 为 localhost 与 127.0.0.1 有什么区别呀?
不能,用语言遍历,存入表中,再导入
然后用命令导入
copy test from '/path/to/xxx.txt' DELIMITERS ',' CSV;
我的目的就是想建一个像excel表之类的表格,像下面这样:
文件名字 文件内容
a.txt 文件a的内容
b.txt 文件b的内容
c.txt 文件c 的内容
是一个N行2列的表(每个文件占一行,有多少个文件需要导入就有多少行);就先拿导入一个文件来讲吧,我先是用的psql做的,
CREATE TABLE test(filename character(30), content text);//创建一个表将文件a.txt导入我有两种思路:
方法一:先用copy将a文件的内容导入到content字段(注,全部内容都是在一个单元格中,并不是占了很多单元格),在用insert将a文件的文件名插入进去,可最终结果是a文件的内容在表格的第一行第二列,而文件名却在第二行第一列。
方法二:直接用insert来插入,如INSERT INTO test VALUES ('a.txt', '/data/a.txt');但INSERT不支持从路径加载文件啊,如果我要做大批量文件的导入的话,我只能给出路径,通过路径来导入文件,这条路又行不通。怎么办?
a4,你能再稍微详细说一下吗,没太看懂你的意思啊,你的意思是用sql语言不可以,那该用什么呢?postgresql是有个c的编程接口libpq,但我看到说libpq 是一套允许客户程序向 PostgreSQL 服务器服务进程发送查询并且获得查询返回的库函数,那用它也可以用来对数据库进行除查询之外的操作吗?我问的问题可能有点白,因为对数据库这块儿是在是没什么底子,刚接触也没多久,请大家知道的不吝赐教哈,多谢各位了
copy city FROM 'd:/city.txt' USING DELIMITERS ','
再insert进去文件的内容可能要考虑特殊字符也可以读取成二进制格式了查询可以采用全文索引