我需要从 mysql 存储过程连接到 Access 数据库来更新我已经在 mysql db 中创建的表
Posted
技术标签:
【中文标题】我需要从 mysql 存储过程连接到 Access 数据库来更新我已经在 mysql db 中创建的表【英文标题】:I need connection to an Access Database from a mysql stored procedure to update tables i already create in mysql db 【发布时间】:2022-01-08 01:27:00 【问题描述】:访问数据库位于服务器上的文件夹中。我需要创建一个存储过程来连接访问数据库并更新表数据。它可以被截断然后插入。它通过存储过程连接到我无法弄清楚的访问数据库。它必须通过按计划完成的工作。
【问题讨论】:
很确定你不能这样做。但是您可以做的是重新配置 Access,使其使用 mysql 作为后端,因此如果您在 Access 中打开表/视图,它只会按需直接从 MySQL 读取数据。这是一个更常见的场景,您可以在线阅读。 信用部门全天使用。不能那样做。我正在尝试让 SSIS 连接到 mysql,但这也让我很适应。我安装了博客上提到的连接器,但也没有用。那是另一个问题,我知道只允许一个问题。感谢您的宝贵时间。 您可以从Access数据库连接到mysql(例如在其中创建链接表)或使用一些第三方中间软件。如果您需要定期(例如,每天)执行更新,那么您可以在 Access DB 中创建相应的子程序并安排其执行。It can't be done that way
...为什么不呢?只是数据库被某人使用的事实并不是一个原因。复制一份,试一试。
另一种选择是使用另一种编程语言从mysql中提取数据,然后将其插入到Access中。该程序可以很容易地按计划运行(根据您的操作系统使用 cron / 计划任务)。
【参考方案1】:
MySQL(Sun-当时是 Oracle 拥有的产品)缺乏连接外部表的管道,除非它们位于其他 MySQL 服务器上。也就是说,它只有一个FEDERATED storage engine。因此,对于 MySQL,您必须找到其他方法来处理您的需求; MySQL event 或其他存储代码无法访问您的 Access 表。
MariaDB,MySQL 的分支,有一个CONNECT storage engine。它允许服务器通过 ODBC 访问外部表,因此您可以使用它访问 Access。 MariaDB 几乎与 MySQL 完全兼容,所以也许你可以用它来替换你的 MySQL 服务器。但是,CONNECT 文档说明了这一点。
...这些表类型不能被评为稳定。在生产应用程序中小心使用它们。
对我来说,这个警告意味着不要这样做!。尤其是对于繁忙的关键业务应用程序(如信贷部门可能使用的),您甚至不希望有一点不稳定。如果您截断一个表,然后重新加载失败,您将能够听到来自下一个县的用户大喊大叫。
我相信您的要求是提取一个(或多个)Access 表的内容并将它们导入 MySQL 表。这种操作称为 extract-transform-load etl。看来您为此目的使用了 SSIS。这应该可行,因为 SSIS 可以(当然)通过 Connector/net 或 Connector/ODBC 驱动程序连接到 Access 和 MySQL。
但是,计划的 SSIS 包从 SQL Server 数据库服务器运行。你没有说你有一个可以支配的。如果您的组织确实有一个生产 SQL Server 实例,您可以将您的 Access -to- MySQL 包放入其中。
否则,您将不得不想办法在不依赖数据库作业(或 event,因为它们在 MySQL 世界中被称为)的情况下运行计划的 etl 作业。为此,您将在 Windows 上使用任务计划程序,或在 UNIX 衍生操作系统(如 Linux 或 FreeBSD)上使用 cronjob。
我敢打赌,您可以通过 Windows PowerShell 脚本或 Linux shell 脚本可靠地完成这项工作。
【讨论】:
以上是关于我需要从 mysql 存储过程连接到 Access 数据库来更新我已经在 mysql db 中创建的表的主要内容,如果未能解决你的问题,请参考以下文章