Trong hướng dẫn này, chúng ta sẽ tìm hiểu về ** MySQL event scheduler** và làm thế nào để tạo ra MySQL events để tự động hóa các tác vụ cơ sở dữ liệu.MySQL events để tự động hóa các tác vụ cơ sở dữ liệu. MySQL event là sự kiện được thực thi dựa theo một lịch trình được định sẵn. Khi bạn tạo ra một sự kiện, bạn đang tạo ra một đối tượng cơ sở dữ liệu được đặt tên có chứa một hoặc nhiều câu lệnh SQL được thực thi tại một hoặc nhiều chu kỳ (lặp đi lặp lại) , bắt đầu và kết thúc trong một ngày và trong thời gian cụ thể. Về mặt khái niệm, điều này cũng tương tự như crontab Unix hoặc Windows Task Scheduler. Bạn có thể sử dụng MySQL event trong nhiều trường hợp chẳng hạn như tối ưu hóa cơ sở dữ liệu bảng, xóa logs, lưu trữ dữ liệu, hoặc tạo các báo cáo phức tạp trong thời gian off. MySQL event scheduler configurationTheo mặc định, ** MySQL event scheduler ** không được kích hoạt.
Để kích hoạt bạn cần phải thực hiện lệnh sau đây:
Khi đã kích hoạt, Bây giờ để xem trạng thái. ta run lại 5Để vô hiệu hóa và ngăn stop event scheduler, bạn thực hiện các lệnh SET GLOBAL với giá trị của event_scheduler = OFF:
Creating new MySQL eventsTạo một event tương tự để tạo các đối tượng cơ sở dữ liệu khác như stored procedures or triggers. Một sự kiện là một đối tượng có tên có chứa các câu lệnh SQL. Stored procedure chỉ được thực thi khi nó được gọi, trigger chỉ thực khi có 1 sự kiện liên quan đến table như insert, update, delete. Event scheduler có thể được thực hiện tại một lần hay những khoảng thời gian theo 1 chu kỳ. Để tạo và lập lịch một sự kiện mới, bạn sử dụng câu lệnh CREATE EVENT như sau:
Giải thích:
Hãy xem xét vài ví dụ tạo các events để hiểu được cú pháp trên. Step1, tạo một bảng messeage bằng cách sử dụng câu lệnh CREATE TABLE như sau:, tạo một bảng messeage bằng cách sử dụng câu lệnh CREATE TABLE như sau:
Step2,Để lập lịch one-time event và chèn một messages vào một bảng bạn làm theo các bước sau :,Để lập lịch one-time event và chèn một messages vào một bảng bạn làm theo các bước sau :
step3, kiểm tra table messeages; bạn sẽ thấy 1 record đã đc tạo. Nó có nghĩa là event được thực hiện khi nó được tạo ra., kiểm tra table messeages; bạn sẽ thấy 1 record đã đc tạo. Nó có nghĩa là event được thực hiện khi nó được tạo ra. Để hiển thị tất cả các events trong database, bạn sử dụng câu lệnh sau: 0Chúng ta không thấy bất kỳ kết quả vì một sự kiện được tự động OFF đi khi nó hết hạn. Trong trường hợp trên, đó là một sự kiện được thực thi 1 lần và đã hết hạn khi thực thi của nó hoàn thành. Để thay đổi, bạn có thể sử dụng mệnh đề ON COMPLETION PRESERVE. Câu lệnh sau đây thực hiện sau thời gian 1 phút sau khi event đc tạo. 1Chờ 1 phút, kiểm tra bảng table messeages, 1 record mới được thêm vào: Nếu chúng ta thực hiện câu lệnh 6 một lần nữa, ta sẽ thấy trạng thái kết quả vì sử dụng mệnh đề 7Câu lệnh sau đây tạo ra sự kiện định kỳ (lặp đi lặp lại) thực thi mỗi phút và hết hạn trong 1 giờ . tính từ khi event được thực thi: 2Chú ý rằng tôi sử dụng STARTS và ENDS để xác định khoảng thời gian hết hạn cho sự kiện này. Bạn có thể test sự kiện lặp lại này bằng cách chờ đợi vài phút và kiểm tra table messeage. Result Drop MySQL eventsĐể loại bỏ một sự kiện hiện tại trong database, bạn sử dụng câu lệnh 8 như sau: 3Ví dụ, để Xóa Event test_event_01, bạn sử dụng câu lệnh sau: 4Trong hướng dẫn này, bạn đã học về MySQL events, làm thế nào để tạo và xóa các sự kiện từ cơ sở dữ liệu. |