Có thể thực hiện thủ tục được lưu trữ chạy mỗi đêm 11 giờ tối, kiểm tra trong bảng nếu bất kỳ bản ghi nào được sửa đổi trong sáu tháng qua, Nếu một số hồ sơ được sửa đổi trong sáu tháng qua tôi phải xóa nó khỏi bàn. Điều này phải chạy tự động mà không cần sử dụng bất kỳ ngôn ngữ bên ngoài nào.Truy vấn tự động trong mysql
10
A
Trả lời
14
CREATE EVENT IF NOT EXISTS `my_old_data_cleaner_event`
ON SCHEDULE EVERY 23 DAY_HOUR
COMMENT 'Clean up Service Start at 11:00PM daily!'
DO DELETE FROM my_table WHERE created_date < (NOW() - INTERVAL 1 MONTH);
HOẶC cho Stored Procedure.
CREATE EVENT IF NOT EXISTS `my_old_data_cleaner_event`
ON SCHEDULE EVERY 23 DAY_HOUR
DO CALL my_sp_cleanup_old_data();
3
bạn có thể đạt được với sự kiện mysql scheduler--
http://dev.mysql.com/doc/refman/5.1/en/events.html
chi tiết blog: http://goo.gl/6Hzjvg
0
Tạo một sự kiện như dưới đây
CREATE EVENT e_daily
ON SCHEDULE
EVERY 1 DAY
DO
BEGIN
DELETE FROM tableA WHERE DATE(`yourtimestamp`) <(CURDATE() - INTERVAL 6 MONTHS);
END
0
Bạn cũng có thể viết một kịch bản mà xử lý dữ liệu của bạn bằng Python, Perl, PHP, vv
Sau đó, bạn chỉ cần thiết lập mục cron sử dụng crontab -e
và thêm dòng sau:
0 23 * * * /path/to/my/script.pl 2>&1 >/dev/null
Nếu bạn không chỉ định 2>&1 >/dev/null
, bạn sẽ nhận được email với kết quả thực hiện.
Cảm ơn rất nhiều .... bạn có thể vui lòng nói rằng cách chúng tôi chạy truy vấn này mà không cần gọi từ bất kỳ ngôn ngữ bên ngoài nào. –
của nó sai lầm của tôi nếu chúng ta tạo ra một sự kiện trong MySQL nó sẽ chạy tự động rit. Cảm ơn –