我有两个来自两个不同数据库的表,我想要一个php函数来同步数据,这样表号2总是可以验证表1上的内容并更新它的信息。 任何人都有如何做到这一点的例子?提前致谢。同步来自两个不同PostgreSQL数据库的两个表
回答
这个例子将连接到两个数据库,并为每个第一个数据库的作者将更新目标数据库的作者与相同的ID。 当然,你必须建立必要的检查,搜索和其他细节之前执行和更新(或插入或者如果你愿意更换),但它完全取决于你要做:)
<?php
if (false !== ($con1 = pg_connect("your source connection string"))) {
if (false !== ($con2 = pg_connect("your dest connection string"))) {
if (false !== ($result = pg_query($con1, "SELECT id, author, email FROM authors"))) {
while (false !== ($row = pg_fetch_assoc($result))) {
pg_query($con2, "UPDATE authors SET email=".pg_escape_string($con2, $row['email']).
'WHERE id='.pg_escape_string($con2, $row['id']));
}
pg_free_result($result);
}
pg_close($con2);
}
pg_close($con1);
}
?>
什么
我希望它有用。请随时问任何关于它的问题。请享用! :)
DS首先感谢你的回复:)我是PHP新手,所以我没有完全理解你的代码告诉我一些事情:在这种情况下,信息会更新!但如果目标数据库是空的,我希望脚本更新它像源数据库? – aocferreira 2011-05-31 15:00:13
如果你想这样做,你必须使用INSERT查询而不是UPDATE查询,但是你应该在之前检查 - 如果匹配的行已经存在于目标数据库中,在这种情况下使用UPDATE作为例子。您也可以使用SQL REPLACE命令,这取决于您的主键的样子。 – 2011-05-31 16:46:09
D.S.的答案将完成工作。
您还可以考虑设置插入/更新后触发器并使用dblink。这样,他们将保持同步,而无需担心它在PHP中。
请注意,无论是哪种情况,都要对数据库错误可能发生的情况保持警惕。当发生数据库错误时,您最终可能会失去与任一解决方案的同步,因为事务将是自治的。
在插入,更新,删除时创建触发器。当触发程序调用将所有在操作中完成的更改(Insert
,update
或delete
)存储到数据库表(我们称之为sync_table
)时。运行一些脚本,将数据从sync_table
复制到另一个数据库表。 sync_table
将存储修改,插入和删除的数据。
- 1. 同步两个数据库
- 2. 合并来自两个不同数据库的两张子表
- 3. 使用SSIS同步来自单独数据库的两个表?
- 4. 同步来自不同DBMS中的两个数据库的一些表
- 5. Cakephp来自两个不同位置/域的两个数据库
- 6. 比较来自两个不同数据库的表的数据
- 7. 需要在java中同步来自不同数据库的两个表
- 8. 同步来自不同数据库的两个SQLITE表格iphone ios
- 9. 同步两个数据库表SQL Server
- 10. 查询来自不同数据库中两个表的数据
- 11. 加入来自两个不同数据库的3个表?
- 12. 匹配来自两个不同表的两个不同的列
- 13. mysql同步两个数据库中的两个表
- 14. 使用C#同步两个表在不同的数据库
- 15. 如何实时同步两个不同的mysql数据库表?
- 16. SQL Server:如何同步不同数据库中的两个表?
- 17. 在来自两个不同数据库的两个表上使用dplyr的anti_join()
- 18. 如何使用PostgreSQL连接来自不同数据库的两个表?
- 19. 来自两个不同来源的数据的JSF数据表
- 20. 在两个不同的数据库之间同步数据
- 21. 如何连接来自两个不同数据库的两个表?
- 22. 如何连接来自不同数据库的两个表格
- 23. 来自DBML中两个不同数据库的表?
- 24. ZEND FW:连接来自不同数据库的两个表
- 25. 合并来自两个不同数据库的表格(Python)
- 26. 来自两个不同数据库表的更新对象
- 27. 同步两个单独的数据库
- 28. 两个数据库的同步
- 29. 两个数据库之间的同步
- 30. 在postgresql中同步/复制两个以上的数据库?
请注意发布'CREATE TABLE' ?,你需要实现你自己的逻辑来在两个不同的数据库之间同步数据 – 2011-05-31 14:37:35