實際上,在預存程序和函數中執行的標準操作會從主 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();
以上是如何複製預存程序和函數內發生的操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!