Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การกระทำภายใน Stored Procedure และ Functions ถูกจำลองอย่างไร


การกระทำมาตรฐานที่ดำเนินการใน Stored Procedures และ Functions จะถูกจำลองจาก Master MySQL Server ไปยัง Slave MySQL Server แม้แต่การสร้าง Stored Procedures และ Functions ที่ดำเนินการผ่านคำสั่ง DDL ธรรมดาบน Master MySQL Server ก็จะถูกจำลองไปยัง Slave MySQL Server ด้วยวิธีนี้ Object จะมีอยู่บนเซิร์ฟเวอร์ทั้งสอง

การกระทำที่เกิดขึ้นภายใน Stored Procedure และ Functions ถูกจำลองเพราะ MySQL บันทึกแต่ละเหตุการณ์ DDL ที่เกิดขึ้นภายใน Stored Procedures และ Functions หลังจากบันทึกเหตุการณ์แล้ว จะถูกจำลองไปยัง Slave MySQL Server แต่การเรียกใช้จริงเพื่อรัน Stored Procedures ไม่ได้ถูกจำลอง ตัวอย่างต่อไปนี้เป็นกรณีที่ Procedure CALL จะไม่ถูกจำลองเพราะมันเป็นการกระทำบน Master MySQL Server

ตัวอย่าง

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

ตอนนี้เมื่อเราเรียก Procedure นี้บน Master MySQL Server มันจะไม่ถูกจำลอง

mysql> Delimiter ; 
mysql> CALL myproc();