Mengautomasikan Pemadaman Baris dalam MySQL dengan Prosedur Tersimpan
Anda menyasarkan untuk mencipta prosedur tersimpan MySQL yang mengalih keluar baris yang lebih lama daripada tujuh hari daripada semua jadual pada tengah malam setiap hari. Walaupun penyelesaian skrip wujud, artikel ini memfokuskan pada pendekatan yang lebih automatik menggunakan kefungsian EVENT MySQL.
Mencipta Prosedur
Pertama, pastikan penjadual acara didayakan:
SET GLOBAL event_scheduler = ON;
Kemudian, buat acara yang mencetuskan setiap hari di 00:00:
CREATE EVENT `delete7DayOldRows` ON SCHEDULE EVERY 1 DAY STARTS '2023-03-01 00:00:00' ON COMPLETION PRESERVE DO -- Your delete logic here END;
Mentakrifkan Logik Pemadaman
Di dalam blok DO acara, nyatakan logik pemadaman. Berikut ialah contoh:
BEGIN DECLARE tableName VARCHAR(255); DECLARE cursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = 'your_database_name'; OPEN cursor; FETCH cursor INTO tableName; WHILE tableName IS NOT NULL DO DELETE FROM `your_database_name`.`tableName` WHERE CURDATE() - INTERVAL 7 DAY > updateDt; FETCH cursor INTO tableName; END WHILE; CLOSE cursor; END;
Logik ini berulang melalui semua jadual dalam pangkalan data yang ditentukan dan memadamkan baris yang lajur kemas kiniDt berusia lebih daripada tujuh hari.
Pertimbangan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengautomasikan Pemadaman Baris Harian dalam MySQL Berdasarkan Umur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!