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

MySql ट्रिगर अपडेट डालने के बाद योग का चयन करें

कोशिश करें

CREATE TRIGGER NewTrigger 
AFTER INSERT ON Transactions
FOR EACH ROW
UPDATE Accounts a
   SET a.AccountBalance = 
    (SELECT SUM(TransactionAmount) 
       FROM Transactions
      WHERE AccountID = a.AccountID)
 WHERE a.AccountID = NEW.AccountID;

यह रहा SQLFiddle डेमो।

अपडेट करें :चूंकि आपके लिए ट्रिगर उपलब्ध नहीं हैं, इसलिए INSERT wrap को रैप करके देखें और UPDATE इस तरह एक संग्रहीत कार्यविधि में

DELIMITER $$
CREATE PROCEDURE AddTransaction(IN aid INT, amount DECIMAL(11, 2)) 
BEGIN
  START TRANSACTION;
  INSERT INTO Transactions (AccountID, TransactionAmount)
  VALUES (aid, amount);
  UPDATE Accounts a
     SET a.AccountBalance = 
      (SELECT SUM(TransactionAmount) 
         FROM Transactions
        WHERE AccountID = a.AccountID)
   WHERE a.AccountID = aid;
   COMMIT;
END $$
DELIMITER ;

और फिर इसका इस्तेमाल करें

CALL AddTransaction(1, 10.50);

यह रहा SQLFiddle उस परिदृश्य के लिए डेमो।




  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 में FROM_BASE64 () फ़ंक्शन कैसे काम करता है

  2. MySQL '=' के साथ UTF-8 स्ट्रिंग का चयन करें लेकिन 'LIKE' के साथ नहीं

  3. MySQL इंसर्ट क्वेरी WHERE क्लॉज के साथ काम नहीं करती है

  4. MYSQL:लोड डेटा INFILE के बाद छोड़े गए रिकॉर्ड प्रदर्शित करें?

  5. Php . का उपयोग करके mysql की एकाधिक पंक्तियाँ सम्मिलित करें