Soalan:
Adakah mungkin untuk mencipta prosedur tersimpan dalam MySQL yang secara automatik memadamkan baris yang lebih lama daripada bilangan yang ditentukan hari?
Jawapan:
Ya, fungsi EVENT MySQL membolehkan anda menjadualkan tugas yang boleh mengautomasikan proses ini. Begini cara anda boleh mencipta prosedur tersimpan sedemikian:
Sediakan Skema Pangkalan Data:
Buat jadual dan lajur dengan lajur cap masa yang diperlukan untuk penjejakan umur baris.
DELIMITER $$ CREATE PROCEDURE DeleteRowsOlderThanDays(table_name VARCHAR(255), days_threshold INT) BEGIN -- Check for valid input parameters IF table_name IS NULL OR table_name = '' OR days_threshold IS NULL OR days_threshold ≤ 0 THEN RETURN; END IF; -- Define the deletion query SET @deletion_query = CONCAT('DELETE FROM ', table_name, ' WHERE TIMESTAMPDIFF(DAY, created_timestamp, NOW()) > ', days_threshold); -- Execute the deletion query PREPARE stmt FROM @deletion_query; EXECUTE stmt; DEALLOCATE PREPARE stmt; END; $$ DELIMITER ;
Gunakan penjadual EVENT MySQL untuk menjadualkan prosedur tersimpan untuk berjalan pada selang waktu tertentu (mis., setiap hari).
CREATE EVENT DeleteRowsJob ON SCHEDULE EVERY 1 DAY AT '00:00:00' DO CALL DeleteRowsOlderThanDays('messages', 7);
Pertimbangan Tambahan:
Pelaksanaan:
Mulakan penjadual acara untuk mendayakan baris automatik pemadaman:
SET GLOBAL event_scheduler = ON;
Nota: Prosedur dan jadual acara yang disimpan boleh disesuaikan untuk mengendalikan berbilang jadual dan ambang umur baris yang berbeza mengikut keperluan.
Atas ialah kandungan terperinci Bolehkah Prosedur Tersimpan MySQL Mengautomasikan Pemadaman Baris Berdasarkan Umur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!