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

mysql अज्ञात तालिका ट्रिगर करें

मैंने नीचे दिखाया है कि प्रश्न की टिप्पणियों में क्या कहा गया था:

CREATE TRIGGER some_trigger AFTER UPDATE ON table_a
    FOR EACH ROW BEGIN
    DECLARE tname VARCHAR(20);
    IF (NEW.field_offer=1) THEN
       UPDATE `table_b` 
       SET STOCK = CASE NEW.field_state 
                   WHEN 0 THEN STOCK - 1 
                   WHEN 1 THEN STOCK + 1 
                   ELSE STOCK 
                   END
       WHERE ID=NEW.ref_field
       ;
    ELSEIF (NEW.field_offer=0) THEN
       UPDATE `table_c` 
       SET STOCK = CASE NEW.field_state 
                   WHEN 0 THEN STOCK - 1 
                   WHEN 1 THEN STOCK + 1 
                   ELSE STOCK 
                   END
       WHERE ID=NEW.ref_field
       ;
    END IF;
    ...

ध्यान दें कि मैंने अपडेट को UPDATE ... JOIN . से बदल दिया है चूंकि MySQL आपको ट्रिगर टेबल के डेटा को बदलने की अनुमति नहीं देता है; जब आप वास्तव में टेबल_ए को अपडेट नहीं कर रहे थे, तो जॉइन MySQL के लिए आपत्ति करने के लिए पर्याप्त हो सकता था ... जिसका table_a . में मिलान था , न केवल table_a ट्रिगर के मान या पंक्ति से संबंधित पंक्तियाँ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एकल प्राथमिक कुंजी को संदर्भित करने वाली विदेशी कुंजी के साथ MySQL डेटाबेस तालिका में एकाधिक छवियों को कैसे सम्मिलित करें

  2. मैं किसी फ़ाइल से तालिका में मान डालने के लिए LOAD_FILE का उपयोग कैसे करूं?

  3. फिक्सिंग लॉक प्रतीक्षा टाइमआउट पार हो गया; 'अटक MySQL तालिका' के लिए लेनदेन को पुनरारंभ करने का प्रयास करें?

  4. एक चयन मिला जो सिद्धांत में 10 प्रश्न करता है (सिम्फनी)

  5. क्या पायथन MySQL तैयार बयानों का समर्थन करता है?