Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में TTL (Time To Live) विकल्प के साथ रिकॉर्ड कैसे बनाएं?


MySQL इवेंट शेड्यूलर का उपयोग करके TTL-आधारित रिकॉर्ड ऑटो-डिलीट करना

MySQL में TTL (Time To Live) लागू करने के लिए इवेंट शेड्यूलर का उपयोग करें जो समय-समय पर पुराने रिकॉर्ड हटाता है।

चरण 1: इवेंट शेड्यूलर सक्षम करें

SET GLOBAL event_scheduler = ON;

या कॉन्फ़िगरेशन फ़ाइल में: event_scheduler = ON

चरण 2: टेबल बनाएं

mysql> create table EventDemo (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EventDateTime datetime
    -> );

डेटा डालें:

mysql> insert into EventDemo(EventDateTime) values('2010-09-21');
mysql> insert into EventDemo(EventDateTime) values('2016-10-27');
mysql> insert into EventDemo(EventDateTime) values('2018-12-09');
mysql> insert into EventDemo(EventDateTime) values('2019-03-12');
mysql> insert into EventDemo(EventDateTime) values('2019-01-04');

चरण 3: TTL इवेंट बनाएं (हर दिन चलता है)

mysql> delimiter //
mysql> CREATE EVENT DeleteDemo
    -> ON SCHEDULE EVERY 1 DAY
    -> DO
    -> BEGIN
    ->   DELETE FROM EventDemo WHERE EventDateTime < NOW();
    -> END //
mysql> delimiter ;

व्याख्या

  • ON SCHEDULE EVERY 1 DAY: हर दिन चलता है
  • EventDateTime < NOW(): वर्तमान समय से पुराने रिकॉर्ड हटाता है
  • delimiter //: स्टोर्ड प्रोग्राम में ; को संभालने के लिए

इवेंट प्रबंधन

-- इवेंट देखें
SHOW EVENTS;

-- इवेट अक्षम/सक्षम करें
ALTER EVENT DeleteDemo DISABLE;
ALTER EVENT DeleteDemo ENABLE;

-- इवेंट ड्रॉप करें
DROP EVENT DeleteDemo;

वैकल्पिक: एप्लिकेशन-स्तर TTL

एप्लिकेशन कोड में डालते समय expires_at कॉलम सेट करें और क्रॉन जॉब/शेड्यूलर से सफाई करें। यह अधिक लचीला और पोर्टेबल है।

नोट

  • इवेंट शेड्यूलर डिफ़ॉल्ट रूप से OFF होता है
  • इवेंट सटीक समय पर नहीं चलने की गारंटी देता (सेकंड की सटीकता नहीं)
  • उच्च-आवृत्ति सफाई के लिए पार्टीशनिंग पर विचार करें
  1. कमांड लाइन में MySQL डेटाबेस कैसे बनाएं? कमांड लाइन में MySQL डेटाबेस कैसे बनाएं?

    सबसे पहले, आपको कमांड प्रॉम्प्ट खोलना होगा। आप शॉर्टकट Windows+R की का उपयोग करके खोल सकते हैं। स्क्रीनशॉट इस प्रकार है: अब CMD टाइप करें और OK बटन दबाएं: अब निम्न कमांड प्रॉम्प्ट दिखाई देगा: अब MySQL bin डायरेक्टरी तक पहुंचें। स्क्रीनशॉट इस प्रकार है: कमांड लाइन में MySQL चलाकर डेटाबेस बनाने का

  1. - MySQL व्यू कैसे बनाएं?

    MySQL व्यू बनाने के लिए, नीचे दिए गए सिंटैक्स में CREATE VIEW का उपयोग करें: create view yourViewName as select * from yourTableName; आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1802 ( StudentId int, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमा

  1. - MySQL सीक्वेंस कैसे बनाएं?

    MySQL में सीक्वेंस क्या है? MySQL में, एक सीक्वेंस इंटीजर्स की एक सूची को संदर्भित करता है जो आरोही क्रम में 1 से शुरू होकर या 0 से यदि निर्दिष्ट किया गया हो, उत्पन्न होती है। कई एप्लिकेशन को सीक्वेंस की आवश्यकता होती है जिनका उपयोग विशेष रूप से पहचान के लिए अद्वितीय संख्या उत्पन्न करने के लिए किया