gpt4 book ai didi

mysql - 在 MySQL 触发器中创建变量

转载 作者:行者123 更新时间:2023-11-29 23:42:02 24 4
gpt4 key购买 nike

请查看下面的 SQL 查询。

DELIMITER $$
CREATE TRIGGER `Portfolio_AINS` AFTER INSERT ON `Portfolio` FOR EACH ROW
INSERT INTO Initial_Fees (idPortfolio, Current_Time_Stamp, Initial_Gross_Fee, Initial_Monetary_Fee)
VALUES (
New.idPortfolio,
current_timestamp,
(New.Invest_Amount*(New.Initial_Gross_Fee/100)),
(New.Invest_Amount*(New.Initial_Gross_Fee/100))*(New.Initial_Company_Fee/100)
)

在这里,Initial_Monetary_Fee = Initial_Gross_Fee * (New.Initial_Company_Fee/100)

但我已经写了(New.Invest_Amount*(New.Initial_Gross_Fee/100))*(New.Initial_Company_Fee/100)

相反,我想创建变量并向它们分配值,这样我就可以避免这么长的计算。例如,如下所示。

InitialGrossFee = (New.Invest_Amount*(New.Initial_Gross_Fee/100))
IntialMonetaryFee = InitialGrossFee * (New.Initial_Company_Fee/100)

那么,如何创建此类变量并将值存储在 MySQL 侧面触发器中?我也更喜欢一些解释。

最佳答案

如果触发器中需要多个语句,则必须使用 BEGIN .... END。然后您可以像往常一样为用户变量赋值:

CREATE TRIGGER `Portfolio_AINS` AFTER INSERT ON `Portfolio`
FOR EACH ROW
BEGIN
SET @grossfee := New.Invest_Amount*(New.Initial_Gross_Fee/100);
INSERT INTO Initial_Fees (idPortfolio, Current_Time_Stamp, Initial_Gross_Fee, Initial_Monetary_Fee)
VALUES (
New.idPortfolio,
current_timestamp,
@grossfee,
@grossfee *(New.Initial_Company_Fee/100)
);
END$$

关于mysql - 在 MySQL 触发器中创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26117621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com