gpt4 book ai didi

MySQL:尝试创建更新另一个表的触发器

转载 作者:行者123 更新时间:2023-11-29 17:34:53 24 4
gpt4 key购买 nike

我正在尝试创建一个触发器,通过在一个表上的插入更新另一个表。这是我的 SQL 查询:

CREATE TRIGGER makePayment AFTER INSERT ON Payments FOR EACH ROW

BEGIN
UPDATE Invoice
SET InvoiceClientPaid = SUM(InvoiceClientPaid + NEW.PaymentAmt)
WHERE InvoiceID = NEW.PaymentInvoiceID;

END;

无论我做什么,我都会收到以下错误:

Error Code: 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 '' at line 6

我认为这与 SUM 无关,因为在 SET 命令上尝试 basic = 1 会给出确切的错误。第 6 行没有 '' ,这很令人困惑?

最佳答案

如果您直接在 MySQL 中输入此查询,则需要使用(例如)DELIMITER// 更改查询之前的分隔符,否则它会认为查询以 结束;UPDATE 语句末尾。然后 MySQL 会看到前面没有任何内容的 END,并提示什么都没有 ('')。所以试试这个:

DELIMITER //
CREATE TRIGGER makePayment AFTER INSERT ON Payments FOR EACH ROW

BEGIN
UPDATE Invoice
SET InvoiceClientPaid = SUM(InvoiceClientPaid + NEW.PaymentAmt)
WHERE InvoiceID = NEW.PaymentInvoiceID;

END; //
DELIMITER ;

关于MySQL:尝试创建更新另一个表的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50364435/

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