實際上,存儲過程和函數中執行的標準操作會從主 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();
登錄后復制
以上就是如何復制存儲過程和函數內發生的操作?的詳細內容,更多請關注www.92cms.cn其它相關文章!