MySQL统一两个表

情况:在崩溃之后(或者破解,我不确定)vB_users中的一些消失了。 我已经进行了这个表的备份,但从那时起,有新的logging。 有没有一个快速的方法来添加从崩溃表到备份表的所有行,并重写现有的行? 我的意思是,联合他们,但坠毁的版本优先于旧版本。

假设你的崩溃表在一个名为current的数据库中,你恢复的备份在一个名为backup的数据库中,并且有一个名为id的主键:

create table current.tempUsers as select * from backup.vB_users ub where not exists (select 1 from current.vB_Users uc where uc.id = ub.id); insert into current.vB_users select * from current.tempUsers; drop table current.tempUsers; 

重命名崩溃的表,恢复备份(从MARCH?ouch),重新命名一个,用旧名称创build一个新表,然后执行如下操作:

 INSERT INTO vB_users SELECT * FROM crashed_table UNION SELECT * FROM restored_table; 

如果logging具有相同的PK值但是值不同,这可能并不正确; 你可以做些鬼鬼祟祟的事情来解决这个问题。