在 MySQL REPLICATE 上取消 DELETE

Cancel DELETE on MySQL REPLICATE

我正在寻找一种方法来防止在 MySQL 复制 Master/Slave 上使用 DELETE 语句。

在我的例子中,Master 是一个实时数据库,有新的条目(不超过一周),Slave 是一个存档数据库,它必须包含所有条目。

我的测试有几个问题:

SQL 异常引发错误并停止我的 Slave。

几天来我一直在绞尽脑汁,我运行没主意了...

您最好将删除写入审计 table。

阻止从属删除的问题是:如果您尝试插入一个带有 pk 的行,而该行已在主控中删除,并且如果您以某种方式阻止了从属中的删除,则插入将在从属中失败。

您可以在具有相同结构的不同 table 中跟踪已删除的行。

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;