MySQL - 无法修复错误代码1142 - 在具有该更新行的INSERT ON触发器之后

时间:2017-05-17 14:15:56

标签: mysql sql triggers

我尝试创建的触发器会执行以下操作:在收到(' racun')表后,我希望它更改final_price(koncni_znesek),因为discount.amount_percent( ' popust.kolicina_procenti&#39)。但我一直收到错误代码1142,遗憾的是,即使网上有很多文档,我也似乎无法修复。

以下是代码:

DELIMITER $$
CREATE TRIGGER cena_po_popustu AFTER INSERT ON RACUN
FOR EACH ROW
BEGIN
    SET SQL_SAFE_UPDATES = 0;
    UPDATE
        racun r
        INNER JOIN 
        postavka p ON p.RACUN_ID = r.ID
        INNER JOIN 
        sobe s ON s.ID = p.SOBE_ID
        INNER JOIN 
        ponudba_prenocisce pp ON pp.ID = s.PONUDBA_PRENOCISCE_ID
        INNER JOIN 
        popusti pop ON pop.ID = pp.POPUSTI_ID
    SET
        NEW.koncni_znesek = r.koncni_znesek - ((pop.kolicina_procenti / 100) * r.koncni_znesek);
    SET SQL_SAFE_UPDATES = 1;
END$$
DELIMITER ;

我的收据(' racun')表:

CREATE TABLE RACUN (
    ID INT not null,
    datum_cas DATETIME not null, 
    koncni_znesek INT not null,
    GOSTI_ID INT not null
);
ALTER TABLE RACUN ADD CONSTRAINT PK_RACUN PRIMARY KEY(ID);
ALTER TABLE RACUN ADD CONSTRAINT FK_RACUN_GOSTI FOREIGN KEY(GOSTI_ID) REFERENCES GOSTI(ID);

0 个答案:

没有答案