首頁  >  文章  >  資料庫  >  如何複製預存程序和函數內發生的操作?

如何複製預存程序和函數內發生的操作?

PHPz
PHPz轉載
2023-09-07 11:57:021448瀏覽

如何複製預存程序和函數內發生的操作?

實際上,在預存程序和函數中執行的標準操作會從主 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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除