我有两个.sql数据库,我想合并这两个数据库的数据,但数据不应重复。这两个数据库都包含相同的数据,我也想忽略相同的数据,因此应从另一个数据库中插入主数据库中不存在的数据。
数据库一和两个都在其中包含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个数据库(描述db1db2。您的模式很简单:

+-------------+
| 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将无济于事。

09-26 23:31
查看更多