gpt4 book ai didi

mysql - 在mysql中创建触发器

转载 作者:行者123 更新时间:2023-11-29 13:49:20 25 4
gpt4 key购买 nike

我试图在插入后在表上创建一个触发器,这将更新另一个表。

这是我尝试过的代码:

delimiter |
CREATE TRIGGER augmenter_quantite_article AFTER INSERT
ON LigneInterventaire
FOR EACH ROW BEGIN
DECLARE @qte AS INTEGER;
DECLARE @code AS INTEGER;
SELECT @qte = qteInv FROM INSERTED;
SELECT @code = codeArt FROM INSERTED;
UPDATE Article SET qteArt = qteArt + @qte WHERE codeArt = @code;
END;

|

delimiter ;

但我收到此错误消息:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@qte AS INTEGER; DECLARE @code AS INTEGER; SELECT @qte = qteInv FROM INSERTED; S' at line 4

最佳答案

尝试

CREATE TRIGGER augmenter_quantite_article 
AFTER INSERT ON LigneInterventaire
FOR EACH ROW
UPDATE Article
SET qteArt = qteArt + NEW.qteInv
WHERE codeArt = NEW.codeArt;

这里是SQLFiddle 演示。

MySql 的触发器实现有些有限。与 SQL Server 中一样,虚拟表本身没有插入删除。相反,您可以分别使用关键字 OLDNEW 访问正在插入或更新的行的旧值和新值。

由于它归结为只有一个 UPDATE 语句,因此您不再需要使用 BEGIN END block 。另一个优点 - 您也不需要更改 DELIMITER ;)

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

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