在MySql / MariaDB中触发更新多个字段

时间:2018-08-22 15:07:06

标签: mysql triggers mariadb

我需要创建一个触发器,该触发器将在表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

PS。对不起,我的英语

更新:我已解决

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 ;

0 个答案:

没有答案