我有一个触发器,在他内部我声明了两个变量:数量和价格。数量为 INT 类型,价格为 DECIMAL(10,2) 类型。这些变量的值由 SELECT 查询设置。这效果很好。现在我想将这两个变量相乘,这样我就可以获得总数。
总金额=数量*价格
简化的代码(在这里不起作用只是为了更好地描述我的问题):
DROP TRIGGER calculate;
DELIMITER $$
CREATE TRIGGER calculate
AFTER INSERT ON order_table
FOR EACH ROW
BEGIN
DECLARE quantity INT;
DECLARE price INT;
SELECT quantity, price INTO @quantity, @price FROM product;
INSERT INTO order_details SET total_amount = @quantity * @price;
END$$
DELIMITER ;
使用此代码,我得到的结果为 null。 我正在使用 MySQL/MariaDB。
最佳答案
我找到了简单的解决方案:
DROP TRIGGER calculate;
DELIMITER $$
CREATE TRIGGER calculate
AFTER INSERT ON order_table
FOR EACH ROW
BEGIN
DECLARE totalAmount DECIMAL(10,2);
SELECT (quantity * price) INTO @totalAmount FROM product;
INSERT INTO order_details SET total_amount = @totalAmount;
END$$
DELIMITER ;
关于mysql - 如何计算mysql触发器内的两个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46022975/