MySQL-can';t修复错误代码1142-在触发器上插入更新行后

MySQL-can';t修复错误代码1142-在触发器上插入更新行后,mysql,sql,triggers,Mysql,Sql,Triggers,我试图创建的触发器将执行以下操作:在插入到收据('racun')表之后,我希望它更改最终价格(koncni_znesek),因为折扣.amount_percent('popust.kolicina_procenti')。但我一直收到错误代码1142,不幸的是,即使有很多在线文档,我似乎也无法修复 代码如下: DELIMITER $$ CREATE TRIGGER cena_po_popustu AFTER INSERT ON RACUN FOR EACH ROW BEGIN SET SQ

我试图创建的触发器将执行以下操作:在插入到收据('racun')表之后,我希望它更改最终价格(koncni_znesek),因为折扣.amount_percent('popust.kolicina_procenti')。但我一直收到错误代码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”)表:


尝试
SET r.koncni_znesek=r.koncni_znesek-(…)
而不是
SET NEW.koncni_znesek=r.koncni_znesek-(…)
我在尝试使用NEW之前就有过,但也不起作用。
存储的函数或触发器无法修改(用于读或写)的表由调用函数或触发器的语句执行。
。看见
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);