DELETE के साथ NOW() - INTERVAL 5 MINUTE का उपयोग करके 5 मिनट से पुराने टाइमस्टैम्प वाली पंक्तियाँ हटाएं।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1851 (DueDate DATETIME);
डेटा डालें
mysql> INSERT INTO DemoTable1851 VALUES('2019-12-03 21:30:35');
mysql> INSERT INTO DemoTable1851 VALUES('2019-12-03 21:45:00');
mysql> INSERT INTO DemoTable1851 VALUES('2019-12-03 21:34:00');
वर्तमान समय
mysql> SELECT NOW(); +---------------------+ | now() | +---------------------+ | 2019-12-03 21:38:46 | +---------------------+
5 मिनट से पुराने हटाएं
mysql> DELETE FROM DemoTable1851
WHERE DueDate < (NOW() - INTERVAL 5 MINUTE);
NOW() - INTERVAL 5 MINUTE = 2019-12-03 21:33:46
इससे पहले: 21:30:35 और 21:34:00 → हट जाएंगे।
शेष डेटा
+---------------------+ | DueDate | +---------------------+ | 2019-12-03 21:45:00 | +---------------------+
महत्वपूर्ण नोट्स
NOW()क्वेरी निष्पादन समय पर एक बार मूल्यांकित होता है।INTERVAL 5 MINUTEके अलावाHOUR,DAY,MONTHआदि उपयोग कर सकते हैं।- बड़े डेटासेट पर बैच में हटाएं (उदाहरण:
LIMIT 1000लूप में) लॉक अवधि कम करने के लिए। - सॉफ्ट डिलीट (
deleted_atकॉलम) अक्सर बेहतर डिज़ाइन है।
समान पैटर्न
- पुराने सत्र हटाएं:
WHERE last_activity < NOW() - INTERVAL 30 MINUTE - पुराने लॉग हटाएं:
WHERE created_at < NOW() - INTERVAL 90 DAY - समाप्त टोकन हटाएं:
WHERE expires_at < NOW()