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

时间:2012-05-02 06:12:33

标签: php database sql-server-2008 synchronization

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

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

有关可以执行此操作的软件或框架的任何建议。

我使用PHP5.4.0但没有特定的框架。我们使用MS Sql 2008R2作为数据库

谢谢,

4 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

恐怕没有魔杖可以做到这一点。但如果你觉得做一些魔术尝试使用ORM。它让生活变得如此简单。

我最喜欢的是

Doctrine ORM - http://www.doctrine-project.org/

当然还有很多人都喜欢。 PropelRedbeanPHP