将2个表结构相同但存储在MySQL的不同数据库中

时间:2011-11-03 16:20:47

标签: mysql phpmyadmin

我想我正在寻找一个名为“INSERT BUT IGNORE MY INCORRECT KEYS INTO”命令的命令......

我的本​​地计算机上有一个表,看起来像这样。 id自动递增: -

id name
1  bob
2  phil

和我服务器上的另一个看起来像这样: -

id name
1  jane
2  sally

我希望将记录从一个插入另一个,所以我最终得到一个记录1,2,3,4的表。

如果我在本地phpmyadmin中使用导出选项(虽然我对管理工具不挑剔)我得到这个sql:

INSERT INTO mytable (id, name) VALUES (1, 'Bob'),(2, 'Phil')

但由于重复的密钥,我无法在服务器上运行它。我意识到我可以用一些正则表达式编辑sql,但我希望有一种更简单的方法。

1 个答案:

答案 0 :(得分:0)

在其中一个数据库中,您可以向所有主键字段添加值,然后插入时不会发生冲突。只需确保为每个受影响的表(如果要组合多个表)以及任何表引用的每个外键字段添加相同的值。

免责声明:以下内容将影响所有行。在你确定要之前不要执行它。

-- Add 5000 to all ids
UPDATE tbl SET id = id + 5000;

然后,您可以导出并按INSERT组合表而不会发生冲突。您的导出输出将如下所示:

INSERT INTO mytable (id, name) VALUES (5001, 'Bob'),(5002, 'Phil')