在多个数据库中插入/更新行


Insert/Update row in multiple databases

我有一个涉及软件即服务的项目。该应用程序具有一个 SystemDB 和多个客户数据库。客户数据库完全相同(所有表都相同(。系统数据库包含一个表,其中包含客户数据库的所有详细信息,如dbname,dbPassword,dbUsername等。

如何对所有数据库进行更新并确保更新正确。例如。所有数据库都有一个转换表。我想在所有表格中添加一个词。或者我想更新拼写错误的单词。我将要维护的 50 多个数据库。所以手工工作是不可能的。

关于可以做到这一点的软件或框架的任何建议。

我使用的是PHP5.4.0,但没有特定的框架 yet.as DB我们使用MS Sql 2008R2

谢谢

我们有类似的情况可以从多个数据库中读取,我们的 pl 是 C#.net。为此,我们编写了一个 C#.net 代码,该代码逐个运行并连接到每个数据库,并将数据管理到单个服务器中。我建议你只这样做,任何脚本,如更新或插入sripts,都应该在.Net中用作Excecute Query。在这种情况下,您将避免手动连接和更新。

我会使用复制来解决这个问题,这是SQL Server隐式支持的。复制允许您发布系统数据库(发布者(中的某些表,并订阅来自一个或多个客户数据库(订阅者(的数据更改。由于您只在一个方向上推送数据,并且正在镜像某些表和系统数据库,因此这对您来说很有效。

可以从 SSMS 设置复制。在对象资源管理器中展开服务器下的"复制"分支,右键单击"本地发布",然后选择"创建发布"。该向导将指导您完成发布过程。对订阅执行相同的操作,并为每个客户数据库创建一个订阅。

由于你有很多客户数据库,因此使用 t-sql 创建订阅,然后在所有目标数据库中复制该代码是值得的。请查看 http://msdn.microsoft.com/en-us/library/ms147346.aspx 以获取有关如何执行此操作的说明。

使用数据库触发器来更新其他数据库中的表。

恐怕没有魔杖可以做到这一点。 但是,如果您确实想做一些魔术,请尝试使用ORM。 它让生活变得如此轻松。

我最喜欢的是

教义 ORM - http://www.doctrine-project.org/

当然还有很多人喜欢。Propel, RedbeanPHP.