कोशिश करें
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 उस परिदृश्य के लिए डेमो।