如果执行了delete from table(不加where条件)或truncate table有害SQL:
Master主机在正常的变更数据:
INSERT INTO `edusoho_e`.`t1` (`xname`, `address`, `hobby`,age) VALUES ('Games', '海南', '就是玩',28); UPDATE `edusoho_e`.`t1` SET xname='刘备' WHERE id=5;
上面的正常数据变更还没有执行完,此时Master上突然间执行了某个有害SQL:
DELETE FROM `edusoho_e`.`t1`;
因为是delete全表数据,表结构仍在,依据会有新数据产生和变更:
INSERT INTO `edusoho_e`.`t1` (`xname`, `address`, `hobby`) VALUES ('曹操', '魏国', '三国'); UPDATE `edusoho_e`.`t1` SET age=40 WHERE xname='曹操'; DELETE FROM `edusoho_e`.`t1` WHERE xname='lzb'; #删除一条不存在的数据(不会产生日志) UPDATE `edusoho_e`.`t1` SET xname='孙权' WHERE xname='Python'; #更新一条不存在的数据(不会产生日志)
正常的Master数据变更: INSERT INTO `edusoho_e`.`orders`(xname,chongzhi,amount) VALUES('郑千次',10000,100); INSERT INTO `edusoho_e`.`orders`(xname,chongzhi,amount) VALUES('孙悟空',200,600); INSERT INTO `edusoho_e`.`orders`(xname,chongzhi,amount) VALUES('柯南',666,888); INSERT INTO `edusoho_e`.`orders`(xname,chongzhi,amount) VALUES('我',1,0); UPDATE `edusoho_e`.`orders` SET chongzhi=chongzhi+1000 WHERE id=3; UPDATE `edusoho_e`.`orders` SET amount=amount-200 WHERE id=5; UPDATE `edusoho_e`.`orders` SET amount=amount-100;
此时,线上有一张用户订单表,执行了一条不加WHERE条件的UPDATE语句:
UPDATE `edusoho_e`.`orders` SET chongzhi=chongzhi+1000;