PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

क्या समाप्ति समय निर्धारित करने का कोई तरीका है, जिसके बाद PostgreSQL में डेटा प्रविष्टि स्वचालित रूप से हटा दी जाती है?

समाप्ति की कोई सुविधा नहीं है, लेकिन यदि आपका लक्ष्य स्वचालित रूप से फ़ील्ड समाप्त करना है और आपके डेटाबेस में तर्क निहित है (और इस प्रकार क्रॉन जॉब की तरह कोई बाहरी निर्भरता नहीं है) तो आप हमेशा एक ट्रिगर लिख सकते हैं। नीचे एक ट्रिगर का उदाहरण दिया गया है जो 1 मिनट से अधिक पुराने टाइमस्टैम्प वाली तालिका से पंक्तियों को हटा देता है। जब भी उसी तालिका में एक नई पंक्ति डाली जाती है तो इसे निष्पादित किया जाता है। आप स्पष्ट रूप से ट्रिगर को अन्य शर्तों पर और आवश्यकतानुसार विभिन्न समाप्ति तिथियों के लिए निष्पादित करने के लिए सेट कर सकते हैं। मैंने इसके लिए एक आधार के रूप में निम्नलिखित वेबसाइट का उपयोग किया:http://www.the-art-of-web.com/sql/trigger-delete-old/

CREATE TABLE expire_table (
    timestamp timestamp NOT NULL DEFAULT NOW(),
    name TEXT NOT NULL
);

INSERT INTO expire_table (name) VALUES ('a');
INSERT INTO expire_table (name) VALUES ('b');
INSERT INTO expire_table (name) VALUES ('c');

select * from expire_table;
         timestamp          | name 
----------------------------+------
 2014-09-26 15:33:43.243356 | a
 2014-09-26 15:33:45.222202 | b
 2014-09-26 15:33:47.347131 | c
(3 rows)

CREATE FUNCTION expire_table_delete_old_rows() RETURNS trigger
    LANGUAGE plpgsql
    AS $$
BEGIN
  DELETE FROM expire_table WHERE timestamp < NOW() - INTERVAL '1 minute';
  RETURN NEW;
END;
$$;

CREATE TRIGGER expire_table_delete_old_rows_trigger
    AFTER INSERT ON expire_table
    EXECUTE PROCEDURE expire_table_delete_old_rows();

INSERT INTO expire_table (name) VALUES ('d');

select * from expire_table;
         timestamp          | name 
----------------------------+------
 2014-09-26 15:36:56.132596 | d
(1 row)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psycopg2 mysqldb.escape_string के बराबर है?

  2. सबक्वेरी का उपयोग करके पोस्टग्रेज में टेबल पंक्तियों को अपडेट करना

  3. @JoinColumn क्या है और हाइबरनेट में इसका उपयोग कैसे किया जाता है

  4. PostgreSQL के लिए pgBouncer का उपयोग करने के लिए एक गाइड

  5. PostgreSQL में एक यूनिक्स टाइमस्टैम्प को दिनांक/समय मान में कैसे बदलें