SQL触发器:我想使trigger AFTER UPDATE和更新它从不同的表中获取数据


BEGIN
IF new.jenis_transaksi ='Alokasi Keluar'
THEN
UPDATE prediksi_alokasi SET total_pengeluaran = (
SELECT SUM(jumlah_alokasi)
FROM alokasi_dana_desa 
WHERE jenis_transaksi ='Alokasi Keluar' 
AND YEAR(tanggal_alokasi) = new.YEAR(tanggal_alokasi)
AND MONTH(tanggal_alokasi) = new.MONTH(tanggal_alokasi))
WHERE bulan = new.MONTH(tanggal_alokasi);
end if ;
END

update的正确语法为:

UPDATE prediksi_alokas pa
SET total_pengeluaran = (SELECT SUM(add.jumlah_alokasi)
FROM alokasi_dana_desa add
WHERE add.jenis_transaksi = 'Alokasi Keluar' AND
EXTRACT(YEAR_MONTH FROM add.tanggal_alokasi) = EXTRACT(YEAR_MONTH FROM new.tanggal_alokasi)
)
WHERE pa.bulan = MONTH(new.tanggal_alokasi);

这至少应该有助于触发,尽管可能还有其他问题。

最新更新