我刚刚让我的网站被黑了,他们能够对我当前的数据库造成一些损害。
无论如何,我有几天前的备份。问题是当前数据库还有几千个帖子和线程/用户。
我只是想知道我怎么可能去合并这两个数据库?
这两个数据库具有确切的结构,我希望备份覆盖当前数据库中的任何记录,只是我希望当前数据库填充任何新记录,如帖子、线程、用户等。
我知道您可以合并两个表,如果它们具有确切的结构,但是两个具有相同结构的数据库呢?
我刚刚让我的网站被黑了,他们能够对我当前的数据库造成一些损害。
无论如何,我有几天前的备份。问题是当前数据库还有几千个帖子和线程/用户。
我只是想知道我怎么可能去合并这两个数据库?
这两个数据库具有确切的结构,我希望备份覆盖当前数据库中的任何记录,只是我希望当前数据库填充任何新记录,如帖子、线程、用户等。
我知道您可以合并两个表,如果它们具有确切的结构,但是两个具有相同结构的数据库呢?
我假设你有一个 schemas1
和一个 schema s2
。
要将 s1 中表的所有行插入 s2 中的表中,同时覆盖现有行,您可以使用:
REPLACE INTO s2.table_name
SELECT * FROM s1.table_name;
如果您不想触及现有线路:
INSERT INTO s2.table_name
SELECT * FROM s1.table_name
ON DUPLICATE KEY IGNORE;
有一些方法可以做到这一点:1.) 使用命令行工具,如schema Sync和mysql diff
2.) 或使用 SQLyog
在此处了解更多信息 http://blog.webyog.com/2012/10/16/so-how-do-you-sync-your-database-schema/
以我的经验 ON DUPLICATE KEY IGNORE 不起作用。相反,我发现
插入忽略 ta2_table 选择 * FROM ta1_table;
像魅力一样工作