我想我正在寻找一个名为“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,但我希望有一种更简单的方法。
答案 0 :(得分:0)
在其中一个数据库中,您可以向所有主键字段添加值,然后插入时不会发生冲突。只需确保为每个受影响的表(如果要组合多个表)以及任何表引用的每个外键字段添加相同的值。
免责声明:以下内容将影响所有行。在你确定要之前不要执行它。
-- Add 5000 to all ids
UPDATE tbl SET id = id + 5000;
然后,您可以导出并按INSERT
组合表而不会发生冲突。您的导出输出将如下所示:
INSERT INTO mytable (id, name) VALUES (5001, 'Bob'),(5002, 'Phil')