Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách replicate hành động bên trong stored procedure/function MySQL

Các hành động chuẩn trong stored procedure/function được replicate từ master sang slave. Việc tạo thủ tục/hàm qua DDL cũng được replicate. MySQL ghi lại từng sự kiện DDL bên trong thủ tục/hàm và replicate sang slave.

Tuy nhiên, lệnh CALL thực thi thủ tục KHÔNG được replicate vì nó chỉ chạy trên master.

Ví dụ

mysql> DELIMITER //
mysql> CREATE PROCEDURE myproc()
    -> BEGIN
    -> DELETE FROM mytable LIMIT 1;
    -> END //

Khi gọi trên master:

mysql> DELIMITER ;
mysql> CALL myproc();

Câu lệnh DELETE bên trong được replicate (vì là DDL event), nhưng CALL myproc() bản thân không replicate.