如何从 MS Access 转换为 MySQL?
Posted
技术标签:
【中文标题】如何从 MS Access 转换为 MySQL?【英文标题】:How to convert form MSAccess to MySQL? 【发布时间】:2014-03-23 05:22:33 【问题描述】:我必须维护一个由其他人编码的项目。在那个项目中,他们使用了 MSAccess 数据库 (.mdb)。我对 C# 和使用 C# 的数据库连接知之甚少。现在我需要从 MSAccess 转换为 mysql。
我该怎么做?
【问题讨论】:
是迁移数据库的一次性活动还是在 MySQL 中完成应用程序的返工 它只是一次迁移。我只需要转换应用程序,以便它可以使用 mysql 数据库而不是 MSAccess。 可以迁移,您可以使用许多可用工具之一,这些链接可以为您提供帮助:http://www.bullzip.com/products/a2m/info.php
和 https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-examples-tools-with-access-export.html
关于使用 MySQL 编写 C#,您需要 MySql 连接器 (dev.mysql.com/downloads/connector/net) 和更多帮助在http://www.codeproject.com/Tips/423233/How-to-Connect-to-MySQL-Using-Csharp
我是否也需要更新所有的连接和查询?或者有什么快速的方法可以做到这一点?
我不知道是否有可用的工具。您需要更改每个连接(因为它已更改),彻底测试应用程序并仅更改根据应用程序行为所需的查询。把它总结为一个答案,如果它解决了你的问题,请标记。
【参考方案1】:
您的要求可以分为两部分:
迁移数据 更新应用以使用新数据库1.迁移数据:许多工具可用于执行相同的 2 个网址:
http://www.bullzip.com/products/a2m/info.php https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-examples-tools-with-access-export.html 如果您想自定义数据迁移,也可以编写自定义应用程序。2.更新应用:
首先您需要更改所有连接对象以使用新数据库, 您可能还需要更改查询,但在执行所有这些操作之前,请测试应用程序 仅更改所需的查询。 MySQL 与 C# 帮助:http://www.codeproject.com/Tips/423233/How-to-Connect-to-MySQL-Using-Csharp【讨论】:
【参考方案2】:我认为您需要执行以下步骤。
步骤 1: 将您现有的 MS ACCESS 数据库迁移到 My SQL,您可以使用 MS Access to My SQL 工具,例如 'Bullzip' ,您可以创建临时数据库即 TempAccessDB
第 2 步: 在需要编写插入语句的地方编写脚本,将 TempAccessDB 数据库迁移到应用程序的 My SQL 数据库。
下面是 MS SQL(不是 MySQL)的示例脚本
/********* Transfer Student Table Data ***********
SET @sqlStatement=N'INSERT INTO '+ @newDBName_Full +'Student]
(StudentID,StudentName)
SELECT StudentID,SName
FROM '+@oldDBName_Full +'tblStudent] a
WHERE NOT exists (SELECT 1 FROM '+ @newDBName_Full +'Student] b WHERE LTRIM(RTRIM(b.StudentName))= LTRIM(RTRIM(a.sName)))'
exec sp_executesql @sqlStatement
/********* Transfer Grade Data***********
...
【讨论】:
【参考方案3】:由于您提到这只是“一次性”的事情,您可以执行以下操作...
-
在您的 MSAccess 表中,右键单击然后导出 > ODBC 数据库
-
输入您想要的表名或默认使用提供的名称
-
[将提示您选择 ODBC 数据源] 选择源(实际上是目标连接)。如果您还没有这个,您可以搜索如何创建 ODBC 连接……非常简单。 :)。然后点击确定。
这将立即在您的 MySql 中创建表并插入所有记录。 请注意,它使用 utf-8 编码。就我而言,我的数据中有日文字符,它们被转换为其他字符。不知道如何解决这部分。除此之外,你应该没事。
无需第三方应用或编码。 :D
【讨论】:
以上是关于如何从 MS Access 转换为 MySQL?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MS Access 的追加查询中将数据类型从文本转换为是/否?
在 MS Access SQL 查询中从普通日期转换为 unix 纪元日期