我有个计划,
我有两个数据库DB1和DB2。两个数据库具有相同的结构。
DB1包含一个主键为1,2,3,4,5的表table1,而DB2也包含主键为1,2,3,4,5的表table1。当我将数据从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

有可能吗?

最佳答案

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

试试这个。

关于mysql - 具有主键问题的相同结构的数据库副本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24776667/

10-11 01:41