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

MySQL - जहां यह अन्य मानों को संतुष्ट करता है, डालने के बाद किसी अन्य तालिका में कॉलम को अपडेट करने के लिए ट्रिगर करें

एक row . में ट्रिगर आपके पास संशोधित की जा रही पंक्ति के दो संस्करणों तक पहुंच है:OLD पंक्ति को समाहित करता है क्योंकि यह था (यदि यह अस्तित्व में है), और NEW पंक्ति को समाहित करता है जैसा कि यह होगा (अगर यह मौजूद रहेगा।)

अपने ट्रिगर को आपके बताए अनुसार काम करने के लिए, आपको WHERE . की शर्त लगानी होगी NEW . के मानों का उपयोग करते हुए क्लॉज , इस तरह:

CREATE TRIGGER update_loyalty_points
  AFTER INSERT ON CWUserOwnsGame
  FOR EACH ROW
    UPDATE CWUsers
      SET loyaltyPoints = loyaltyPoints +
        (SELECT loyaltyPoints
          FROM CWGameList
          WHERE gameConsole = NEW.cName
            AND gameName = NEW.gName)
      WHERE username = NEW.uName;

मैंने मान लिया है कि आपने तालिकाओं के बीच लगातार अपने कॉलम नाम दिए हैं। ध्यान दें कि NEW . में सही कॉलम CWOwnsGame . में कॉलम के समान नाम हैं ।




  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. PHP-MYSQL:यूनिक्स टाइमस्टैम्प को डेटटाइम में कनवर्ट करना और इसके विपरीत

  3. PHP pdo mysql के लिए डिफ़ॉल्ट वर्णसेट क्या है?

  4. एसक्यूएल एक निश्चित चरित्र के बाद सब कुछ चुनें

  5. MySQL में किसी तालिका के एक भाग से न्यूनतम और अधिकतम मान चुनें