Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pembaruan Pemicu MySql pilih jumlah setelah dimasukkan

Coba

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;

Ini SQLFiddle demo.

PERBARUI :Karena pemicu tidak tersedia untuk Anda, coba bungkus INSERT dan UPDATE menjadi prosedur tersimpan seperti ini

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 ;

Dan kemudian gunakan

CALL AddTransaction(1, 10.50);

Ini SQLFiddle demo untuk skenario itu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memasukkan tanggal ke mysql sebagai parameter?

  2. gabung luar penuh di mysql

  3. Bagaimana cara menampilkan kategori, subkategori, sub-subkategori dalam daftar pilih - php/mysql?

  4. Cara terbaik untuk menghindari entri duplikat ke database mysql

  5. Perbedaan antara database MySQL/SQLite/etc?