我正在寻找一种方法来阻止MySQL复制主/从的DELETE语句。
在我的情况下,Master是一个实时数据库,有新的条目(不超过一周),Slave是一个存档数据库,必须包含所有条目。
我的测试有几个问题:
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'DELETE canceled';
SQL异常引发错误并停止我的Slave。
我几天以来就把这个问题放在脑子上,而且我的想法已经用完......
答案 0 :(得分:0)
最好将删除写入审计表。
防止从站中删除的问题是:如果您尝试插入一个已在主服务器中删除的pk的行,并且如果您以某种方式阻止了从服务器中的删除,则从服务器中的插入将失败。
您可以在具有相同结构的其他表中跟踪已删除的行。
http://www.techonthenet.com/mysql/triggers/before_delete.php
CREATE TRIGGER audit_before_delete
BEFORE DELETE
ON yourtable FOR EACH ROW
BEGIN
-- Find the deleted row and insert record into audit table
-- insert into yourtable_audit values (old.id, old.name, old.description);
END;