儲存過程和函式中發生的事件如何被複制?


實際上,在儲存過程和函式中執行的標準動作會從主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.