如果執行了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;