我需要从 mysql 存储过程连接到 Access 数据库以更新我已经在 mysql 数据库中创建的表

I need connection to an Access Database from a mysql stored procedure to update tables i already create in mysql db

访问数据库在服务器上的文件夹中。我需要创建一个存储过程来连接到访问数据库并更新 table 数据。它可以被截断然后插入。它通过存储过程连接到我无法弄清楚的访问数据库。必须按计划通过工作来完成。

MySQL(Sun 当时的 Oracle 拥有的产品)缺乏连接到外部 table 的管道,除非它们在其他 MySQL 服务器上。也就是说,它只有一个 FEDERATED storage engine. So, with MySQL you'll have to find some other way to handle your requirement; a MySQL event 或其他存储代码无法命中您的 Access tables.

MariaDB,MySQL 分支,有一个 CONNECT storage engine。它允许服务器通过 ODBC 访问外部 tables,因此您可以使用它访问 Access。 MariaDB 几乎完全兼容 MySQL,因此也许您可以用它替换您的 MySQL 服务器。然而,CONNECT 文档是这样说的。

...these table types cannot be ranked as stable. Use them with care in production applications.

对我来说,这个警告意味着不要这样做!。尤其是对于繁忙的关键业务应用程序(如信贷部门可能使用的应用程序),您甚至不希望出现一点点不稳定。如果你 t运行cate a table 然后重新加载失败,你将能够听到来自下一个县的用户大喊。

我相信您的要求是提取一个(或多个)Access table 的内容并将它们导入 MySQL table。这种操作称为提取-转换-加载 . It seems you use SSIS for the purpose. That should work, because SSIS can connect to Access (of course) and to MySQL via the Connector/net or Connector/ODBC 驱动程序。

但是,计划的 SSIS 包从 SQL 服务器数据库服务器获取 运行。你没有说你有其中之一供你使用。如果您的组织确实有一个生产 SQL 服务器实例,您可以将您的 Access - to - MySQL 包放入其中。

否则你将不得不想办法运行你预定的 job without relying on a database job (or event,因为他们在MySQL世界中被称为)。为此,您将在 Windows 上使用任务计划程序,或在 OS 等 UNIX 派生的 OS 或 FreeBSD 上使用 cronjob。

我敢打赌,您可以通过 Windows PowerShell 脚本或 Linux shell 脚本可靠地完成这项工作。