Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySql Trigger Update chọn tổng sau khi chèn

Hãy thử

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;

Đây là SQLFiddle bản trình diễn.

CẬP NHẬT :Vì trình kích hoạt không có sẵn cho bạn, hãy thử bọc INSERTUPDATE vào một thủ tục được lưu trữ như thế này

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 ;

Và sau đó sử dụng nó

CALL AddTransaction(1, 10.50);

Đây là SQLFiddle demo cho kịch bản đó.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php và bản ghi mysql sao chép từ bảng này sang bảng khác

  2. Cách sử dụng JDBC để kết nối cơ sở dữ liệu MySql

  3. Chuỗi thoát Unicode trong dòng lệnh MySQL

  4. Swift httppost dữ liệu không chèn vào cơ sở dữ liệu MySQL

  5. Cập nhật ngay lập tức cho JCombobox trong Java