我如何编写一个动态脚本,以使列名;

GST是一个变量,我希望每当Gross_sales列中有数据插入时,它就会根据公式动态计算

SET @GST = gross_sales * 0.07, @gross_sales = 'gross_sales';

INSERT INTO sales(invoice_no, GST, gross_sales)
VALUES ('INV-1', @GST, 11.00),
       ('INV-2', @GST, 1.20),
       ('INV-3', @GST, 1.20);


我希望每当将数据输入到gross_sales列中时,GST列的值都将自动计算。我尝试声明变量,但是没有成功。

最佳答案

触发器是您想要的。
您需要创建一个before insert触发器来计算gst的值。

delimiter $$
CREATE TRIGGER `calc_gst`
 BEFORE INSERT
 ON `sales`
 FOR EACH ROW
 BEGIN
   set new.gst = new.gross_sales*0.07;
 END
delimiter ;


您将插入如下所示的值:

insert into sales values('inv-1',0,100);

关于mysql - 编写动态代码脚本以将值插入变量,变量也是列名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58109080/

10-12 18:28