gpt4 book ai didi

mysql - 如何在 MySQL 触发器中访问 "INSERTED"值?

转载 作者:可可西里 更新时间:2023-11-01 07:33:59 25 4
gpt4 key购买 nike

如何在触发器中访问 INSERTED 表的值?

例如:

INSERT INTO sales (sku, qty) 
VALUES
(1001, 5), //I need these values in the trigger
(1002, 1)
...

这是我的触发器:

DELIMITER $$

CREATE TRIGGER after_sales_insert
AFTER INSERT ON sales
FOR EACH ROW BEGIN

UPDATE products
SET NEW.qty = OLD.qty - INSERTED.qty
WHERE sku = INSERTED.sku;

END;
$$
DELIMITER;

请注意,sales.skuproducts 表的外键。

SQL Server 有 INSERTED 关键字,它似乎不适用于 MySQL。

回答:

NEW.qty 引用设置了触发器的表上的数量不是正在更新的表。

CREATE TRIGGER after_sales_insert 
AFTER INSERT ON sales
FOR EACH ROW BEGIN

UPDATE products
SET qty = qty - NEW.qty
WHERE sku = NEW.sku;

END;

最佳答案

给定:

INSERT INTO sales (sku, qty) 
VALUES
(1001, 5), //I need these values in the trigger
(1002, 1)
...

我相信你想要这个:

CREATE TRIGGER after_sales_insert AFTER INSERT ON sales 
FOR EACH ROW BEGIN
UPDATE products
SET qty = qty - NEW.qty
WHERE sku = NEW.sku;
END;

引用资料:

关于mysql - 如何在 MySQL 触发器中访问 "INSERTED"值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54964064/

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