我有两个.sql数据库,我想合并这两个数据库的数据,但数据不应该是重复的。两个数据库都包含相同的数据,我也想忽略相同的数据,并且主数据库中不存在的数据应从另一个数据库插入其中。数据库 1 和 2 中都有 NAME 字段,因此应删除相同的名称,并插入其他名称。
for example
db1 have author_name db2 have author_name
KARAN RAM
KISAN LAXMAN
MAYUR MAYUR
RAM RAHIM
After Merging the result should be
DB1 author_name
KARAN
KISAN
MAYUR
RAM
LAXMAN
RAHIM
这个问题有点模棱两可,但我相信我理解这个问题 - 你只是想将两个数据库转储合并到一个表中。
假设您的表名为 authors
,并且您有 2 个数据库(如您描述的 db1
和 db2
。 您的架构很简单:
+-------------+
| column |
+-------------+
| id |
| author_name |
+-------------+
首先,您提到您有 2 个.sql文件,我认为这些文件是用 mysqldump
生成的 - 确保您的author_name
列具有唯一的索引集。
ALTER TABLE db1.authors ADD UNIQUE INDEX `UNI_authors_author_name` (`author_name`)
然后修改这两个 SQL 文件,并将 INSERt 查询从:
INSERT INTO db1.authors
自
INSERT IGNORE INTO db1.authors
这只会忽略 mysql 在您尝试插入重复内容时会抛出的错误。 唯一索引强制唯一记录,在这种情况下,您无需编辑记录,因此ON DUPLICATE KEY UPDATE
不会帮助您。