存储过程和函数中发生的事件如何被复制?


实际上,在存储过程和函数中执行的标准动作会从主MySQL服务器复制到从MySQL服务器。即使通过主MySQL服务器上的正常DDL语句进行创建存储过程和函数,也会将其复制到从MySQL服务器。通过这种方式,对象将存在于两个服务器上。

存储过程和函数中执行的操作被复制,因为MySQL会记录存储过程和函数中发生的每个DDL事件。在记录事件后,将其复制到从MySQL服务器。但是,对存储过程的实际调用不会被复制。以下是一个示例,在该示例中,过程CALL不会被复制,因为它实际上是主MySQL服务器上的一个。

示例

mysql> Delimiter //
mysql> CREATE PROCEDURE myproc()
    -> BEGIN
    -> DELETE FROM mytable LIMIT 1;
    -> END //

现在当我们在主MySQL服务器上调用此过程时,它不会被复制。

mysql> Delimiter ;
mysql> CALL myproc();

更新于: 22-Jun-2020

132 次浏览

职业生涯启航

完成课程获得认证

开始
广告
© . All rights reserved.