[小经验]在SQLite和PostgreSQL之间导数据
要从SQLite里导30万笔数据到PostgreSQL里。
按照以前的经验,那肯定是找个DUMP工具,比如Borland的 Data Pump或是MSSQL的DTS。但是说实话,这些东西用在非ODBC或ADO的数据上实在不方便。而且因为我的电脑换了块主板,狗日的MSSQL就不能 用了,删除重装也不行,总不能让我重装系统吧,还TMD是正版。
还是老老实实用标准SQL来做吧,又通用又快速,只是查找使用方法花了点时间,这里记录一下吧。
从SQLite中导出:
sqlite3 database.name .dump .quit > database.export
导入到PostgreSQL中:
psql -d database -a -f database.export
搞定。
顺大便记录一下反过来的操作。
从PostgreSQL中导出:
pg_dump database -d -f database.export
更新:由于目前版本(pg9)的pg_dump默认是用COPY语句导数据的,为了兼容,还是用INSERT语句为好:
pg_dump database --inserts -f database.export
其它可用参数还有如: -a(只导数据) --column-inserts(在INSERT语句里包含字段名,适用于字段顺序不同的情况)等
导入SQLite:
sqlite3 database.name < database.export
注意,可能需要修改掉一些SQLite不支持的语句。