Computer >> Máy Tính >  >> Lập trình >> MySQL

Việc sử dụng mệnh đề ON COMPLETION PRESERVE trong khi tạo sự kiện là gì?


Như chúng ta biết rằng một sự kiện sẽ tự động bị loại bỏ khi nó hết hạn và chúng ta sẽ không thể nhìn thấy nó từ câu lệnh SHOW EVENTS. Để thay đổi loại hành vi như vậy, chúng ta có thể sử dụng BẬT BẢO QUẢN HOÀN THÀNH trong khi tạo sự kiện. Có thể hiểu nó từ ví dụ sau -

Ví dụ

 mysql> Tạo bảng event_messages (ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, MESSAGE VARCHAR (255) NOT NULL, Generated_at DATETIME NOT NULL); Truy vấn OK, 0 hàng bị ảnh hưởng (0,61 giây) 

Truy vấn dưới đây sẽ tạo một sự kiện mà không sử dụng BẬT BẢO QUẢN HOÀN THÀNH do đó nó sẽ không được nhìn thấy trong đầu ra của HIỂN THỊ SỰ KIỆN TỪ db_name truy vấn.

 mysql> CREATE EVENT testing_event_without_Preserves TRÊN LỊCH TẠI CURRENT_TIMESTAMP LÀM CHÈN VÀO event_messages (message, created_at) Giá trị ('Without Preserve', NOW ()); Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) mysql> Chọn * từ event_messages; + ---- + ------------------ + --------------------- + | ID | THÔNG ĐIỆP | Generated_at | + ---- + ------------------ + --------------------- + | 1 | Không có Bảo tồn | 2017-11-22 20:32:13 | + ---- + ------------------ + ------------------ ------- + 1 hàng trong bộ (0,00 giây) mysql> HIỂN THỊ SỰ KIỆN TỪ truy vấn \ G ************************** * 1. hàng *************************** Db:query Tên:testing_event5 Definer:root @ localhost Múi giờ:Loại HỆ THỐNG:MỘT LẦN Thực thi lúc:2017-11-22 17:09:11 Giá trị khoảng thời gian:NULL Trường khoảng thời gian:NULL Bắt đầu:NULL Kết thúc:NULL Trạng thái:ĐÃ HÓA Nguồn khởi tạo:0character_set_client:cp850collation_connection:cp850_general_ci Đối chiếu cơ sở dữ liệu:latin1_swedish_ci1 hàng trong bộ (0,00 giây)  

Truy vấn dưới đây sẽ tạo một sự kiện với việc sử dụng BẬT BẢO QUẢN HOÀN THÀNH do đó nó sẽ được nhìn thấy trong đầu ra của HIỂN THỊ SỰ KIỆN TỪ db_name truy vấn.

 mysql> TẠO SỰ KIỆN testing_event_with_Preserves TRÊN LỊCH TẠI CURRENT_TIMESTAMP KHI HOÀN THÀNH BẢO QUẢN LÀM CHÈN VÀO event_messages (message, created_at) Giá trị ('With Preserve', NOW ()); Truy vấn OK, 0 hàng bị ảnh hưởng (0,00 giây) mysql> Chọn * from event_messages; + ---- + ------------------ + --------------------- + | ID | THÔNG ĐIỆP | Generated_at | + ---- + ------------------ + --------------------- + | 1 | Không có Bảo tồn | 2017-11-22 20:32:13 || 2 | Với Bảo tồn | 2017-11-22 20:35:12 | + ---- + ------------------ + ------------------ ------- + 2 hàng trong bộ (0,00 giây) mysql> HIỂN THỊ SỰ KIỆN TỪ truy vấn \ G ************************** * 1. hàng *************************** Db:query Tên:testing_event5 Definer:root @ localhost Múi giờ:Loại HỆ THỐNG:MỘT LẦN Thực thi lúc:2017-11-22 17:09:11 Giá trị khoảng thời gian:NULL Trường khoảng thời gian:NULL Bắt đầu:NULL Kết thúc:NULL Trạng thái:ĐÃ HẾT Người khởi tạo:0character_set_client:cp850collation_connection:cp850_general_ci Đối chiếu cơ sở dữ liệu:latin1_swedish_ci ********* ****************** 2. hàng *************************** Db:truy vấn Tên:testing_event_with_Preserves Bộ xác định:root @ localhost Múi giờ:Loại HỆ THỐNG:MỘT LẦN Thực hiện lúc:2017-11-22 20:35:12 Giá trị khoảng thời gian:NULL Trường khoảng thời gian:NULL Bắt đầu:NULL Kết thúc:NULL Trạng thái:ĐÃ TẮT Người khởi tạo:0character_set_client:cp850collation_connection:cp850_general_ci Đối chiếu cơ sở dữ liệu:latin1_swedish_ci2 hàng trong bộ (0,00 giây)