mysql - MS Access to MySQL Conversion help (Gigantic table)

标签 mysql ms-access export

所以我在 MS Access (*.mdb) 中有这个包含大约 700 万条记录的巨大表,我想将它转换为更实用的 MySQL 格式,并将其存储在我的网络服务器上。该文件本身有 2GB 大小。

问题是,因为表太大,不让我正常导出(Access说限制是65,536条记录。)

我尝试了一些第 3 方软件,但无济于事。

谁能推荐一种干净的方法,而不会损坏内部数据?

在此先感谢您的帮助。

最佳答案

如果您还没有 MySQL 的 ODBC 驱动程序,请安装它。最新版本可在此处获得:Download Connector/ODBC

从 Windows ODBC 数据源管理器为您的 MySQL 服务器创建一个 DSN(数据源名称)。

然后从 Access 2003 中,在数据库窗口中选择您的表,然后从 Access 的主菜单中选择文件 -> 导出。在“Export Table 'yourtablename' To ...”对话框中,从“Save as type”下拉列表(位于对话框底部)中选择“ODBC Databases()”。下一个对话框允许您指定 MySQL 将用于导出表的名称,它默认为 Access 表名称。单击“确定”后,您将看到另一个对话框“选择数据源”,您可以在其中为 MySQL 选择 DSN。在该对话框上单击“确定”后,您可能会再收到一个要求您输入用户名和密码的对话框。提供它们,然后单击“确定”。

希望您的表格随后能够正确无误地传输。但是,我从来没有用 MySQL 做过那个操作。它对我有用,可以将 ODBC 传输到 SQL Server 和 PostGreSQL。所以我不明白为什么它也不适用于 MySQL。

另外,我从来没有尝试一次导出 700 万条记录。如果它窒息,我们将不得不想出一个解决方法。

如果您使用的是 Access 2007 而不是 2003,请从功能区的“导出”部分开始寻找类似的选项。

我建议采用这种方法,因为我的印象是这种导出将是一次性交易,所以我认为 Access UI 导出方法最简单。但是,您可以使用 DoCmd.TransferDatabase Method 对 VBA 代码执行基本相同的操作。使用您的 ODBC DSN。

另一种选择是在 MySQL 中创建一个兼容的表结构,在 Access 中创建一个到 MySQL 目标表的链接(再次使用您的 DSN),然后从 Access 运行“追加查询”:

INSERT INTO link_to_mysql_table (field1, field2, field3, etc)
SELECT field1, field2, field3, etc
FROM access_table;

如果导出在 700 万条记录上发生阻塞,追加查询方法可能很有用。您可以添加 WHERE 子句以将 SELECT 查询的输出记录集限制为可管理的 block 大小,然后使用不同的 WHERE 重复指定另一个 block 。

关于mysql - MS Access to MySQL Conversion help (Gigantic table),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6985731/

相关文章:

linux - .bash_profile 中的路径设置不会反射(reflect)在整个系统中

c# - 使用 iTextSharp 导出为 PDF 时重复标题行

php - 将 "Integrity constraint violation: 1048 Column cannot be null "设为警告消息

mysql - 这个简单的左连接操作不起作用,但为什么呢?

sql-server - MS Access 链接表中的可为 Null 的 bool 字段

ms-access - 错误代码 3021 bof 或 eof 为真或当前记录已被删除

mysql - 记录太多,WAMP 挂起,因为将没有订单的客户导出到 CSV

mysql - 使用时间维度的查询忽略 "where"子句中的条件

没有删除语句的MySQL复制

http - 通过 HTTP Post 发送 XML 时编码 "<"和 ">"