我有一个场景,
我有两个数据库 DB1 和 DB2 。两个数据库都具有相同的结构。
DB1包含一个表" table1"使用 AUTO INCREMENT PRIMARY KEY 1,2,3,4,5和DB2还包含" table1"主键1,2,3,4,5。当我将数据从DB2插入到DB1时,来自DB2的数据将变为6,7,8,9,10。但我需要1,2,3,4,5来自DB2的数据和6,7,8,9,10作为DB1数据..
我可以使用此查询吗?
mysqldump -n -t -u userB --password=*** db2 | mysql -u userA --password=*** db1
有可能吗?
答案 0 :(得分:1)
您可以使用这两种情景中的一种
首先:
第二
使用可以使用此mysql命令复制数据:
插入dbDestination.tblDestination(field1,field2,...) 选择 ... 来自dbSource.tblSource
答案 1 :(得分:1)
DECLARE @MaxId INT
SELECT @MaxId = MAX(Id) FROM Db1
SET IDENTITY_INSERT db1 ON
INSERT INTO Db1(Id, Column1, Column2, ...)
SELECT @MaxId+ ROW_NUMBER()OVER(ORDER BY Id),
Column1,
Column2,
...
FROM db2
SET IDENTITY_INSERT db1 OFF
试试这个..
答案 2 :(得分:-1)
首先在将数据从DB2插入DB1之前,在DB1中截断“table1” 因为它可能设置了“自动增量id = 6”