Hallo,
habe ein Problem mit dem folgenden Trigger:
Der Trigger funktioniert, jedoch habe ich die Einträge in der dbmail_test immer doppelt. Was ist die Ursache dafür?
Gruß
Reiner
habe ein Problem mit dem folgenden Trigger:
Code:
CREATE DEFINER=`root`@`%` TRIGGER `dbmail`.`dbmail_header_AFTER_INSERT` AFTER INSERT ON `dbmail_header` FOR EACH ROW
BEGIN
DECLARE res_pmid BIGINT;
DECLARE res_pathid BIGINT;
DECLARE res_email VARCHAR(150);
DECLARE done INT DEFAULT FALSE;
DECLARE curnamereturnpath CURSOR FOR SELECT id FROM dbmail_headername WHERE headername LIKE 'return-path';
DECLARE curvaluesreturnpath CURSOR FOR SELECT dv.headervalue FROM dbmail_headervalue dv
JOIN dbmail_header dh on physmessage_id=res_pmid AND headername_id=res_pathid
WHERE dv.id=dh.headervalue_id LIMIT 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
SET res_pmid = NEW.physmessage_id;
SET res_email = '';
OPEN curnamereturnpath;
FETCH curnamereturnpath INTO res_pathid;
IF NOT done THEN
OPEN curvaluesreturnpath;
block2: BEGIN
DECLARE donepath INT DEFAULT FALSE;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET donepath = TRUE;
FETCH curvaluesreturnpath INTO res_email;
IF NOT donepath THEN
INSERT INTO dbmail_test(physmsgid,email,pathid) VALUES(res_pmid,res_email,res_pathid);
END IF;
END block2;
CLOSE curvaluesreturnpath;
END IF;
CLOSE curnamereturnpath;
END
Der Trigger funktioniert, jedoch habe ich die Einträge in der dbmail_test immer doppelt. Was ist die Ursache dafür?
Gruß
Reiner