mysql/mariadb中的触发器更新多个字段

4ktjp1zp  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(232)

我需要创建一个触发器,该触发器在表documenti中插入一行后运行,并进行如下查询中所示的2次更新

UPDATE AllegatoZip AS a
    LEFT JOIN Documenti AS d on d.allegato = a.idAllegato
        SET a.data_invio_operatore = d.data_invio_doc
WHERE NEW.allegato = a.idAllegato AND NEW.data_invio_doc > a.data_invio_operatore;

UPDATE AllegatoZip AS a SET a.dataInserimento = now()
    WHERE NEW.allegato = a.idAllegato;

我只用一次更新就创建了触发器

CREATE TRIGGER AggiornaDataDocumenti AFTER INSERT ON Documenti
    FOR EACH ROW UPDATE AllegatoZip a
        LEFT JOIN Documenti d on a.idAllegato = d.allegato
            SET a.data_invio_operatore = d.data_invio_doc
        WHERE NEW.allegato = a.idAllegato AND NEW.data_invio_doc > a.data_invio_operatore

sql数据库模型:https://ibb.co/msnvne
对不起,我的英语不好
更新:我解决了

DELIMITER $$
CREATE TRIGGER `AggiornaDataDocumenti` AFTER INSERT ON `Documenti` FOR EACH ROW BEGIN
DECLARE docID INT;
SET docID = NEW.allegato;

UPDATE AllegatoZip a
LEFT JOIN Documenti d on a.idAllegato = d.allegato
SET a.data_invio_operatore = d.data_invio_doc
WHERE  
docID = a.idAllegato AND d.data_invio_doc > a.data_invio_operatore;

UPDATE AllegatoZip a SET a.dataInserimento = now()
WHERE 
docID = a.idAllegato;
END
$$
DELIMITER ;

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题