创建“After Insert”触发器

时间:2014-09-20 15:14:56

标签: mysql sql database triggers insert

请看下面的图表

enter image description here

我需要在Ongoing_Portfolio中编写一个触发器,它会在Ongoing_Fees操作后自动更新Insert

Portfolio.Other_Fee是一个百分比,而Ongoing_Fees.Other_Fee = Ongoing_Portfolio.Cash_Value * Portfolio.Other_Fee

请注意所有3个表格中的idPortfolio。这里发生的是用户将数据插入Ongoing_Portfolio后,它会使用Portfolio扫描相关的idPortfolio。然后它从相关的投资组合中抓取Other_Fee并将数据插入Ongoing_Fees。

下面是我写的Trigger,但是我无法编写插入方法来执行Other_Fee

CREATE TRIGGER `Ongoing_Portfolio_AINS` AFTER INSERT ON `Ongoing_Portfolio` FOR EACH ROW
INSERT INTO Ongoing_Fees (idPortfolio,Other_Fee)
VALUES
(New.idPortfolio, )

如何完成此触发器?

示例:

Portfolio.idPortfolio = 1
Portfolio.Other_Fee = 10%

现在我将数据插入Ongoing_Portfolio

Ongoing_Portfolio.idPortfolio = 1
Ongoing_Portfolio.Cash_Value = 1000

现在,trigger已触发,因此Ongoing_Fees中的数据应为

Ongoing_Fees.idPortfolio = 1
Ongoing_Fees.Other_Fee = 100

1 个答案:

答案 0 :(得分:3)

这是你需要的吗?

INSERT INTO Ongoing_Fees (idPortfolio,Other_Fee)
    select New.idPortfolio, p.other_fee
    from Portfolio p
    where p.idPortfolio = New.idPortfolio;