我有两个.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个数据库(描述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
将无济于事。