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

ट्रिगर और संग्रहीत कार्यविधियों के आधार पर सारांश तालिका को अद्यतन करना

वैसे आप डेटा के लिए डीबी को बार-बार पूछ रहे हैं जिसे आप पहले से जानते हैं।

क्यों न केवल सारांश को केवल परिवर्तनों के साथ अपडेट किया जाए।

DELIMITER $$

CREATE TRIGGER ai_base_each AFTER INSERT ON base FOR EACH ROW
BEGIN
  INSERT INTO summary (status, count) VALUES (NEW.status,1)
  ON DUPLICATE KEY UPDATE
    SET count = count + 1;
END $$

CREATE TRIGGER ad_base_each AFTER DELETE ON base FOR EACH ROW
BEGIN
  UPDATE summary s
    SET s.count = s.count - 1 
    WHERE s.status = OLD.status;
END $$


CREATE TRIGGER au_base_each AFTER UPDATE ON base FOR EACH ROW
BEGIN
  UPDATE summary s
    SET s.count = s.count - 1 
    WHERE s.status = OLD.status;

  INSERT INTO summary (status, count) VALUES (NEW.status,1)
  ON DUPLICATE KEY UPDATE
    SET count = count + 1;
END $$

DELIMITER ;

यह कहीं अधिक तेज़ और अधिक सुरुचिपूर्ण होगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एग्रीगेशन फंक्शन के बिना ग्रुप बाय क्लॉज का कोई कारण?

  2. इनोडब फुलटेक्स्ट द्वारा अनुक्रमित शब्दों की सूची बनाएं

  3. PHP का उपयोग करके MySQL में अज्ञात संख्या में पंक्तियाँ डालें

  4. php . के साथ Google ऐप इंजन में mysqli समर्थित नहीं है

  5. MySQL:कई थ्रेड्स में लेनदेन