在linux的实际应用过程中,经常要处理一些数据的导入及导出 ,特别是将windows平台的数据导到linux平台的数据库中. 从网上的一篇“如何把ACCESS的数据导入到Mysql中”文中,我获得了一些启示,成功的将sqlserver数据导到了postgresql数据库中。
实现手段如下:
postgresql有一个非常有用的sql命令COPY — 在表和文件之间拷贝数据 ,
语法
COPY [ BINARY ] table [ WITH OIDS ]
FROM { filename | stdin }
[ [USING] DELIMITERS delimiter ]
[ WITH NULL AS ull string ]
COPY [ BINARY ] table [ WITH OIDS ]
TO { filename | stdout }
[ [USING] DELIMITERS delimiter ]
[ WITH NULL AS ull string ]
详细请参见postgresql7.1.1 document中文版(http://laser.zhengmai.com.cn/pgsqldoc-7.0c/sql-copy.htm)说明。
首先我们把数据从sqlserver中导出为文本文件.在导出过程中注意选择好字段分隔符和文本标识符,且查看一下文本文件,确定一个记录是否在同一行上,如不是,则手工把回车键除掉.假如我们导出的文本文件为c:\friend.txt.把它拷贝到linux下 /usr/test/目录下。其内容如下:
1,云飞扬,男,南京六合,徐州建院
2,孙高勇,男,南京六合,徐州建院
3,朱晓玲,女,南京,未知
我们要将数据从linux文件复制到表friends(表的结构要同文本文件的格式一致字段如下:id,name,sex,address,school),使
用“,”字符作为分隔线:
copy friends FROM /usr/test/friend.txt USING DELIMITERS ',';
去试一下(注意转义字符),是不是一切ok!
当然拉,这种方法还是比较麻烦地,不知各位还有什么更好的方法,请告诉我,我的email:yfy002@21cn.com
参考文档:1.如何把ACCESS的数据导入到Mysql中
2.postgresql7.1.1 document中文版(http://laser.zhengmai.com.cn)