DBF文件每隔几小时更新一次。我们需要将新记录导入MySQL并跳过重复项。我对DBF文件没有任何经验,但据我所知,我们正在使用的那一个没有唯一的ID。将DBase(dbf)文件常规导入MySQL表的最佳方式是什么?
我打算使用Python,如果没有现成的实用程序这样做。
DBF文件每隔几小时更新一次。我们需要将新记录导入MySQL并跳过重复项。我对DBF文件没有任何经验,但据我所知,我们正在使用的那一个没有唯一的ID。将DBase(dbf)文件常规导入MySQL表的最佳方式是什么?
我打算使用Python,如果没有现成的实用程序这样做。
DBF格式是在30多年前开发的,当时典型的PC使用了640K的RAM。这是很容易阅读的,当天我为它写了一个Autocad数据库驱动程序(是的,我是旧的)。基本上你所要做的就是创建一些C结构并将它们从磁盘加载/转储到磁盘。
有一个Python library for reading DBF files,我不时使用它,因为Shapefiles(一种流行的GIS数据格式)通常包含一个DBF文件。
例子:
>>> from dbf import Table
>>> placenames = Table('PLCNAM.DBF', codepage='cp1252')
>>> placenames.open()
>>> for place in placenames:
... print(place.count, place.name)
41 Springfield
26 Clinton
25 Madison
24 Franklin
...
可能要看一看这个项目:(。)http://sourceforge.net/projects/dbfconverter/
当你说你正在使用的dBase,我相信你有机会获得点提示。
在点提示符下将.dbf文件转换为分隔文本文件。
使用必需的命令在 MySql中将分隔文本文件重新转换为MySql数据文件。我不知道它的实际命令。所有的DBMS都会有命令来完成那个工作。
为了消除重复,您必须在通过用dBase编写的程序将 数据填充到.dbf文件时执行此操作。
如果没有ID - 如何查找重复项? – Devart 2013-02-25 09:16:00
也许考虑所有列来确定唯一性,或者可能使用DBF文件中的行#。老实说,我不完全确定。 – ShawnCBerg 2013-02-25 15:13:43