發生在儲存過程和函式中的動作是如何複製的?


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