发生在存储过程和函数中的动作是如何复制的?


实际上,在存储过程中和函数中执行的标准动作从 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();

更新于: 2020 年 6 月 22 日

131 次浏览

开启你的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.